functional-programming - 列表理解比列表抽象更好吗?

标签 functional-programming clojure list-comprehension

为什么人们更喜欢列表推导式(for [x '(1 2 3)] (* 2 x))而不是 (map #(* %1 2) '(1 2 3)) ?

这种编程有好处吗?
1. 是否更具可读性?
2. 在某些情况下会更快吗?
3.对于某些类型的操作和数据结构是否更好?

最佳答案

对于您给出的示例,没有任何好处;但总的来说,for当你加入两个(或更多)序列时,或者当你需要做一些过滤时很有用 - a for:let:when通常比嵌套的链更易读mapfilter .

关于functional-programming - 列表理解比列表抽象更好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1175273/

相关文章:

recursion - 我该如何编写这个 Clojure 函数才不会耗尽堆栈?

Haskell:使用列表理解并将每个列表的 x 减少 1 以生成 x 个列表

python - 使用嵌套 for 循环的推导式创建字典

python - 循环与列表理解与其他方法的速度/效率比较

c++ - 使用新模板参数递归调用模板化函数

javascript - 功能还原的理解

clojure - 按索引解构向量

记录 Clojure 代理

java - 如果在 Java 流中不为空则设置一个值

javascript - 在 Flow 中过滤 Maybe(可空)类型的数组以删除空值