List-Consrehension是否比List-Abstractions更好?

unj*_*nj2 4 functional-programming list-comprehension clojure

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

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

Pav*_*aev 8

对于你给出的例子,没有任何好处; 但在一般情况下,for当你连接两个(或更多)的序列,或当你需要做一些过滤是很有用的-一个for:let:when通常比的嵌套链更可读的mapfilter.