Clojure 我怎样才能让for循环不以嵌套的方式做事情?
我想要像这样的东西Clojure 我怎样才能让for循环不以嵌套的方式做事情?,clojure,Clojure,我想要像这样的东西 (for [x [1 2 3] y [4 5 6]] (+ x y)) =>(5 7 9) 而不是 =>(5 6 7 6 7 8 7 8 9) 我想我可以通过解构来实现,但不确定如何实现。 我试过了 它给出了(39) 有什么建议吗?对于这个问题,宏的不是最合适的选择。尝试使用map: (map + [1 2 3] [4 5 6]) 建议:在Clojure中,您应该考虑递归,而不是迭代。谢谢您的建议!我仍在学习功能性思考。for是一个功
(for [x [1 2 3]
y [4 5 6]]
(+ x y))
=>(5 7 9)
而不是
=>(5 6 7 6 7 8 7 8 9)
我想我可以通过解构来实现,但不确定如何实现。
我试过了
它给出了(39)
有什么建议吗?对于这个问题,宏的
不是最合适的选择。尝试使用map
:
(map + [1 2 3] [4 5 6])
建议:在Clojure中,您应该考虑递归,而不是迭代。谢谢您的建议!我仍在学习功能性思考。for是一个功能性列表理解-它的名字会引起混乱,因为for循环在命令行中languages@m0skit0我会更进一步说,“思考功能性”——这是la@dbyrne用map
给出的答案,这并不能解决更一般的问题:有时for
更合适,因为您需要执行多个嵌套步骤,但您希望其中一个步骤组合两个seq。另一个解决方案是(对于[[xy](映射向量[1234][456])(+xy))
。
(map + [1 2 3] [4 5 6])