clojure 宏 -> 和 ->>

作者: admin 日期: 2017-12-27 17:20:18 人气: - 评论: 0

clojure中的-> 和 ->> 操作极大的缓解了括号嵌套的问题


(-> [2 5 4 1 3 6] (reverse) (rest) (sort) (count))

=> 5

(count (sort (rest (reverse [2 5 4 1 3 6]))))

=> 5


根据官方的解释->是一个宏,解释起来有点绕口,->的参数是一系列的s表达式

-> 会依次把第n个s表达式塞入第n+1个表达式的第二个位置,并移除第n个表达式


->>则是塞入到最后一个位置


下面的demo表示了两者的差异

(-> 1

    (+ 1)

    (* 2)

    (/ 3))

=> 4/3

(->> 1

    (+ 1)

    (* 2)

    (/ 3))

=> 3/4


相当于


(/ (* (+ 1 1) 2) 3)

=> 4/3

(/  3 (*  2 (+ 1 1)))

=> 3/4


相关内容

发表评论
更多 网友评论0 条评论)
暂无评论

Copyright © 2012-2014 我的代码板 Inc. 保留所有权利。

页面耗时0.0400秒, 内存占用1.82 MB, 访问数据库13次

闽ICP备15009223号-1