因此,尝试制作类似于 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])
这工作得很好,但我想做的最后一件事是让它,所以我不需要"=>"
但可以使用=>
任何提示我如何制作=>
一个可以在我所指的上下文中解析的有效符号?