clojure - 在 clojure 中,如果定义为 [x] 参数然后引用为 x,为什么不识别 x?在代码块中?

标签 clojure lisp

(defn boolean [x]
  (if (x? nil or false)
    (false)
    (true)))

我明白了

Unable to resolve symbol: x? in this context

x 是函数的参数,我只是引用它,我错过了什么?

最佳答案

因为 x 和 x?是两个不同的名字。您的函数可以简单地写成

(defn boolean [x]
  (if x true false))

关于clojure - 在 clojure 中,如果定义为 [x] 参数然后引用为 x,为什么不识别 x?在代码块中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26737646/

相关文章:

oracle - 如何从 Lisp 运行 Oracle plsql 过程?

session - 在 clojure-ring 中清除 session (注销用户)

emacs:当光标突出显示括号时评估闪烁匹配打开

ruby - 树顶语法问题,不匹配所有选项

lisp - 从其他列表中删除列表

clojure - 在 Clojure deftype 中重写 equals、hashCode 和 toString

multithreading - 使用 swank/slime 理解 Clojure 中的输出

emacs - 根据值将列表列表转换为不同的列表列表

clojure - 使用在另一个方法中定义的方法

nested - 有没有 lisp 的头部有 s 表达式,例如((f 2)3 4)?如果不是,为什么?