Redian新闻
>
[bssd] functional programming matters...
avatar
[bssd] functional programming matters...# Programming - 葵花宝典
d*a
1
送一个开户的cde,checking account, 100块。
3926430373201997 expire 02/26/2011
avatar
g*t
2
我个人的浅见,functional programming在现在的算法时代还是挺重要的吧,也许会越
来越重要。并发什么的我不懂。
举最简单的例子如下:
假如你有一列数据,有一些坏点。你想查表求查表的结果。
那先填坏点,再查表
还是先查表,再填坏点
结果是不一样的。
现在你想两个办法都实验下。
如果能写成纯函数,那就是
f(g(x))还有g(f(x))即可。如果是打开写在loop里,那两个办法试一下还是比较麻烦。
这种例子挺多的。尤其ann很多是从ee的信号流图来的思路。
avatar
x*4
3
想太复杂了。fp对普通人最大的好处是ref transparent,aka结果在任何环境run都是
一样的。这对理解复杂系统很有帮助。

【在 g****t 的大作中提到】
: 我个人的浅见,functional programming在现在的算法时代还是挺重要的吧,也许会越
: 来越重要。并发什么的我不懂。
: 举最简单的例子如下:
: 假如你有一列数据,有一些坏点。你想查表求查表的结果。
: 那先填坏点,再查表
: 还是先查表,再填坏点
: 结果是不一样的。
: 现在你想两个办法都实验下。
: 如果能写成纯函数,那就是
: f(g(x))还有g(f(x))即可。如果是打开写在loop里,那两个办法试一下还是比较麻烦。

avatar
h*i
4
我的浅见,FP与其他的编程模式区别只在小处(日常小算法的实现),大处(程序体系
结构)其实没有啥区别。
FP强迫程序员把局部小问题也要想清楚才下手,我个人体会,这样写出来的代码要清楚
明白得多,更容易维护,对其正确性要有信心得多。这个FP的“局部需要想更多“的特
征,有人喜欢,有人不喜欢,确实是个人口味问题。
对FP的爱好可能与个人喜不喜欢用debugger有负相关。比如我几乎从不用debuger,觉
得FP这种想清楚再写的方式很好,反正我debug也是用想的。

【在 g****t 的大作中提到】
: 我个人的浅见,functional programming在现在的算法时代还是挺重要的吧,也许会越
: 来越重要。并发什么的我不懂。
: 举最简单的例子如下:
: 假如你有一列数据,有一些坏点。你想查表求查表的结果。
: 那先填坏点,再查表
: 还是先查表,再填坏点
: 结果是不一样的。
: 现在你想两个办法都实验下。
: 如果能写成纯函数,那就是
: f(g(x))还有g(f(x))即可。如果是打开写在loop里,那两个办法试一下还是比较麻烦。

avatar
g*t
5
我和你习惯有点类似。可能是当年Mathematica写的比较多。debug不太会用.
“A computation is a temptation that should be resisted as
long as possible.”
— J. P. Boyd
FP和其他语言确实没有大区别。有的任务用FP一天能多试几个办法。因为FP容易写出来
composable接口干净的代码。用一般语言就不是那么方便。

【在 h*i 的大作中提到】
: 我的浅见,FP与其他的编程模式区别只在小处(日常小算法的实现),大处(程序体系
: 结构)其实没有啥区别。
: FP强迫程序员把局部小问题也要想清楚才下手,我个人体会,这样写出来的代码要清楚
: 明白得多,更容易维护,对其正确性要有信心得多。这个FP的“局部需要想更多“的特
: 征,有人喜欢,有人不喜欢,确实是个人口味问题。
: 对FP的爱好可能与个人喜不喜欢用debugger有负相关。比如我几乎从不用debuger,觉
: 得FP这种想清楚再写的方式很好,反正我debug也是用想的。

avatar
d*c
6
我用R的时候,因为想尽量用vectorized operation,就要求尽量用已有的函数,同时
尽量避免手工写for loop。不是所有时候都能避免for loop,但有的时候确实可以避免。
用已有函数实际可能还是在用循环,但是是用一个经过证明的可靠函数,作一件比较简
单确定的事,相比直接去写一个复杂的for loop或者if else,这样的结构比较可靠。
另外尽量从vector角度去思考,有时也是有好处的。
这种方式有局限,但能用的时候好处很多。
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。