函数式编程语言当中的"柯里化",对于C++编程有什么借鉴意义么?

fdasjkl126 2011-01-19 12:54:34
是不是说,一个清楚的软件设计,是函数应该每次只增加一个参数,例如C++的函数重载

void f(int param1);//真正的实现代码
void f(int param1,int param2);//里面调用了单个参数的f
void f(int param1,int param2,int param3);//里面调用了2个参数的f

依此类推?
...全文
212 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Bizet 2011-01-19
  • 打赏
  • 举报
回复
个人认为应该是用什么写什么
bdmh 2011-01-19
  • 打赏
  • 举报
回复
这是什么,应该属于代码规范之列,写的代码看着舒服
机智的呆呆 2011-01-19
  • 打赏
  • 举报
回复
另外即将成c++下个标准的新特性的lambda表达式,个人愚见也是类型partial or curried function概念
机智的呆呆 2011-01-19
  • 打赏
  • 举报
回复
partial or curried function 这个函数语言的特性,个人以为本质上是把一个函数当成一个值的
概念,传入其他的函数或表达式,而在这个过程,这个函数的所需的参数不必完全指定,用占位符即可。
而这个概念,c++早已借鉴多年,比较典型的是boost::bind,
如bind(f0,bind(f1,_1))
f1的函数参数没有指定,只是利用一个占位符~~
上述函数本质是 f0(f(_1))

函数语言partial or curried function类似下面的语法
let add(a ,b)=a+b;
let add0=add 4
let add1=a0+10
print add1
add1=14

一家之言,高手指正~~
lhy 2011-01-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 dizuo 的回复:]

lz说的 “柯里化” 应该是颗粒化或者kernal化吧。
[/Quote]
不是,是函数式编程里面的东西。
维基百科-柯里化
函数式编程看着像非函数式编程,但实际是差别很大。
相关教程往往有一堆数学证明。
ryfdizuo 2011-01-19
  • 打赏
  • 举报
回复
lz说的 “柯里化” 应该是颗粒化或者kernal化吧。
iambic 2011-01-19
  • 打赏
  • 举报
回复
哪里来的这些不着边的“借鉴”。
lhy 2011-01-19
  • 打赏
  • 举报
回复
函数式和非函数式的相差很多,不能套用。

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧