作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
作为函数式语言的新手(几周前我开始接触 Erlang——我可以接触的第一种函数式语言)。
我开始写一些小算法(比如 left_rotate_list
, bubble_sort,
merge_sort
等)。我发现自己经常迷失在诸如“我应该使用辅助列表来存储中间结果吗?”之类的决定中。和“我应该创建一个辅助函数来做到这一点吗?”
一段时间后,我发现函数式编程(如果我说的完全没有意义,请耐心等待)鼓励“自上而下”的设计:即,当我执行 merge_sort 时,您首先写下所有合并排序步骤,并将它们命名为单独的辅助函数;然后你一个一个地实现那些辅助函数(如果你需要进一步划分那些辅助函数,用同样的方法来做)。
这似乎和OO设计有点矛盾,你可以从底层开始构建基本的数据结构,然后把数据结构和算法组装成你想要的。
感谢您的评论。是的,我想得到关于如何“用函数式语言思考”的建议(就像“用 Java 思考”、“用 C++ 思考”一样)。
最佳答案
After a while, I found that functional programming […] encourages a "top down" design.
:)
关于functional-programming - 关于学习 "How to Think Functional"的建议?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1549017/
我是一名优秀的程序员,十分优秀!