dar*_*h10 8 functional-programming clojure
我偶然发现了使用惰性序列的Pascal三角形的优雅实现.
(def pascal
(iterate
(fn [prev-row]
(->>
(concat [[(first prev-row)]] (partition 2 1 prev-row) [[(last prev-row)]])
(map (partial apply +) ,,,)))
[1M]))
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮我理解,,,这个背景吗?我尝试过使用,macroexpand但这并没有让我走得太远.我也知道它不是必需的,但我想知道这,,,意味着什么.
ddk*_*ddk 13
在Clojure中逗号被视为空格,因此Reader将,,,完全忽略.它的原因是使代码对人类更具可读性.
在此上下文中,->>宏将(concat ...)在调用的最后位置插入(map ...),即位于,,,.
在,,,通常与使用->和->>宏使代码更易读,但实际上并没有做任何事情.