我正在尝试学习如何以函数式编程的方式思考,为此,我正在尝试学习 Erlang 并通过codingbat 解决简单的问题。我遇到了比较列表中元素的常见问题。例如,将列表中第 i 个位置元素的值与第 i+1 个位置的值进行比较。所以,我一直在思考和寻找如何在 Erlang (或任何函数式语言)中以函数式方式做到这一点。
请对我温柔点,我在这个函数世界中很新手,但我想学习
提前致谢
定义一个列表:
L = [1,2,3,4,4,5,6]
Run Code Online (Sandbox Code Playgroud)
定义一个函数 f,它接受一个列表
在 Erlang 代码中
f ([]) -> [];
f ([_]) -> [];
f ([X, X|Rest]) -> [X | f(Rest)];
f ([_|Rest]) -> f(Rest).
Run Code Online (Sandbox Code Playgroud)
应用功能
f(L)
Run Code Online (Sandbox Code Playgroud)
这应该有效...尚未编译并运行它,但它应该可以帮助您入门。另外,如果您需要对其进行修改以使其表现不同。
欢迎来到 Erlang ;)