【发布时间】:2023-03-11 10:00:02
【问题描述】:
作为函数式语言的新手(几周前我开始接触 Erlang —— 这是我能接触到的第一个函数式语言)。
我开始写一些小算法(如left_rotate_list、bubble_sort,merge_sort等)。我发现自己经常迷失在诸如“我应该使用辅助列表来存储中间结果吗?”之类的决定中。和“我应该创建一个辅助函数来执行此操作吗?”
过了一段时间,我发现函数式编程(如果我说的根本没有意义,请耐心等待)鼓励“自上而下”的设计:即,当我执行 merge_sort 时,您首先写下所有合并对步骤进行排序,并将它们命名为单独的辅助函数;然后你一个一个地实现这些辅助函数(如果你需要进一步划分这些辅助函数,用同样的方法来做)。
这似乎和OO设计有点矛盾,你可以从底层开始构建基本的数据结构,然后将数据结构和算法组装成你想要的。
感谢 cmets。是的,我想获得有关如何“用函数式语言思考”的建议(就像“用 Java 思考”、“用 C++ 思考”)。
【问题讨论】:
-
您想要“面向 OOP 程序员的函数式编程指南”的建议吗?
-
Mahin,更新问题。感谢您的回复。
标签: functional-programming erlang