【发布时间】:2013-05-04 18:40:32
【问题描述】:
所以尝试制作类似于 haskell lambda 语法的东西,并使用宏,这就是我所拥有的:
(defmacro / [& all]
(let [args (take-while #(not (= %1 "=>")) all)
argCount (count args)
expr (last (split-at (+ argCount 1) all))]
`(fn ~(vec args) (~@expr))))
(reduce (/ x y "=>" + x y) [1 2 3])
这很好用,但我最不想做的就是让它,所以我不需要"=>",但可以使用=>
任何提示我可以如何使=> 成为我可以在我所指的上下文中解析的有效符号?
【问题讨论】: