gpt4 book ai didi

macros - Clojure 报价与数字

转载 作者:行者123 更新时间:2023-12-04 04:36:30 26 4
gpt4 key购买 nike

我不明白为什么 '50% 和 '50x 在 clojure 中抛出异常。我想制作一个接受 50% 为参数的宏,但我不断收到异常。有可能吗?

[编辑]
好的,所以,你会笑,但我更多地是为了一个笑话 DSL,但现在我真的很好奇。

(defmacro chance [x]
(let [y (Integer/parseInt (clojure.string/replace (str x) "%" ""))]
`(> ~y (rand-int 100))))

最佳答案

你不能只引用任何字符序列,你只能引用有效的 Clojure 形式;引用的表达式必须是 (read)能够并且它必须是单个表达式。
50x50%不是有效的符号或数字,无论是否引用,因为数字可能不以 x 或 % 结尾,并且符号可能不以数字开头。它们也不是有效的字符串文字,因为字符串必须用双引号引起来。另见 http://clojure.org/reader

关于macros - Clojure 报价与数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19682551/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com