【问题标题】:What is the difference between loop, comprehension and recursion in functional programming languages函数式编程语言中的循环,理解和递归有什么区别
【发布时间】:2020-08-04 06:30:28
【问题描述】:

我在研究elixir,看到有两种迭代方式

Comprehension
And recursion

我特别想知道循环和理解之间的区别, 我用谷歌搜索了这个问题,但没有得到令人满意的答案。

【问题讨论】:

  • 这和 Haskell 有什么关系?
  • 看来这个问题已经关闭所以我不能回答它,但我可以尝试在 cmets 中至少给出一个答案的概述。 (1/4)
  • 递归是当一个函数调用自身时,在达到某个条件(“基本情况”)时停止。在纯函数式编程语言中,这是实现迭代的基本结构。 (2/4)
  • 循环是一种结构,其中代码块多次运行直到达到条件,通常通过更新变量的值同时或直到它满足指定条件.在命令式编程语言中,这是实现迭代的基本结构;相比之下,纯函数式语言通常不提供循环。 (快速的 Google 搜索告诉我 Elixir 没有任何循环。)(3/4)
  • A 列表理解 不同于其他两种构造,因为它不能(通常)执行任意代码。相反,列表推导只能用于构造列表。列表推导遍历一个(或多个)列表的元素,查看哪些满足特定条件,并将这些满足的元素收集到一个新列表中。 (4/4)

标签: loops recursion functional-programming elixir


【解决方案1】:

来自@bradrn

递归是当一个函数调用自身时,在达到某个条件(“基本情况”)时停止。在纯函数式编程语言中,这是实现迭代的基本结构。

循环是一种代码块多次运行直到达到条件的结构,通常通过更新变量的值同时或直到它满足指定的条件。在命令式编程语言中,这是实现迭代的基本结构;相比之下,纯函数式语言通常不提供循环。 (快速的 Google 搜索告诉我 Elixir 没有任何循环。)

列表推导与其他两种构造不同,它(通常)不能执行任意代码。相反,列表推导只能用于构造列表。列表推导遍历一个(或多个)列表的元素,查看哪些满足特定条件,并将这些满足的元素收集到一个新列表中。

【讨论】:

    猜你喜欢
    • 2013-07-23
    • 2016-02-01
    • 2018-05-06
    • 2014-12-14
    • 2011-02-09
    • 2013-07-29
    • 1970-01-01
    • 2011-03-29
    • 1970-01-01
    相关资源
    最近更新 更多