| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 459 人关注过本帖
标题:[讨论]新手报到,顺便提个问。
只看楼主 加入收藏
林杰杰
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2005-3-31
收藏
 问题点数:0 回复次数:6 
[讨论]新手报到,顺便提个问。

大家好,新手报到。

顺便向大家请教一个问题:有没办法实现这样一个特性,通过某种封装,把C语言中的函数变成同整数一样的一等公民?比如说,能否实现跟下面的Python代码一样功能的C语言代码:

def fun(n):
f = lambda x : x ** n

return f

pow_3 = fun(3)

print pow_3(10)

结果是1000。

2006-05-30 02:14
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
以下是引用林杰杰在2006-5-30 2:14:00的发言:

大家好,新手报到。

顺便向大家请教一个问题:有没办法实现这样一个特性,通过某种封装,把C语言中的函数变成同整数一样的一等公民?比如说,能否实现跟下面的Python代码一样功能的C语言代码:

def fun(n):
f = lambda x : x ** n

return f

pow_3 = fun(3)

print pow_3(10)

结果是1000。

有哇,在C的数学库中现成的。
#include<math.h>
main( )
{
printf("%f",pow(10,3)); //pow(x,y)返回x**y的值
}

[此贴子已经被作者于2006-5-30 7:19:45编辑过]


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-30 07:19
林杰杰
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2005-3-31
收藏
得分:0 
以下是引用–★–在2006-5-30 7:19:00的发言:

有哇,在C的数学库中现成的。
#include<math.h>
main( )
{
printf("%f",pow(10,3)); //pow(x,y)返回x**y的值
}


er...楼上的似乎没有理解我的意思。

我的意思是,能不能通过某种机制,返回一个函数作为返回值呢?就跟Functor一样。

2006-05-30 09:34
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
回复:(林杰杰)以下是引用–★–在2006-5-30 7:19:0...
C不行,因为她诞生得太早了。她连数组整体即向量、矩阵操作都不允许,更不能返回函数,但返回所谓“函数的指针”倒是允许的。

落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-30 09:38
sgfxj
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2006-5-29
收藏
得分:0 

是类的概念
要用以后的版本才可以

2006-05-30 09:42
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
回复:(sgfxj)是类的概念要用以后的版本才可以
以下是引用sgfxj在2006-5-30 9:42:00的发言:

是类的概念
要用以后的版本才可以

楼上答得对:C++类class的干活


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-30 09:44
林杰杰
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2005-3-31
收藏
得分:0 
正是因为知道不可以这样做,才要问问能不能有什么办法可以实现这样的事情啊。 
2006-05-30 10:14
快速回复:[讨论]新手报到,顺便提个问。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012127 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved