我在研究elixir,我看到有两种迭代的方式。
Comprehension
And recursion
我想知道循环和理解的区别,我已经上网查了这个问题,但没有得到满意的答案。
从 @bradrn
递归 是指当一个函数调用自己,当达到某个条件("基本情况")时停止。在纯函数式编程语言中,这是实现迭代的基本结构。
A 襻 是一种结构,在这种结构中,代码块会被多次运行,直到达到某个条件,通常是通过更新变量的值while或者直到满足指定条件。在命令式编程语言中,这是实现迭代的基本结构;相比之下,纯函数式语言通常不提供循环。(谷歌快速搜索告诉我,Elixir没有任何循环。)
A 名单理解 与其他两个构造不同,它不能(通常)执行任意代码。相反,列表解析只能用于构造一个列表。列表解析通过一个(或多个)列表中的元素,查看哪些元素满足某个条件,并将这些满足条件的元素收集到一个新的列表中。