我正在尝试将 (not(X))
添加到序列中的所有项目 X
。
例如:
将 (a b)
转换为
( (不是(a)) (不是(b)) )
当我使用 (map (fn [x] (not(x))) mylist)
时,它会尝试计算 not 并返回 bool 值。
当我使用 (map (fn [x] '(not(x))) mylist)
时,它只返回 (not(x))
的列表无需实际放入列表的变量。
(a b) --> ( (not(a)) (not(b)) )
?谢谢!
最佳答案
user=> (map (fn [x] (list 'not (list x))) '(a b))
((not (a)) (not (b)))
'
单引号运算符可以方便地制作列表,因为它可以防止评估,但它在您的情况下不可用,因为您在结果列表中包含要评估的内容。
另一个选项是 ` AKA quasiquote,它允许选择性取消引号,但也允许命名空间符号(再一次,在您的情况下没有用,您希望按字面意思使用符号)。
关于dictionary - 将 "not"添加到 Clojure 序列中的每个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32940765/