如何将伪参数传递给clojure lambdas?

如何将伪参数传递给clojure lambdas?,lambda,clojure,functional-programming,jvm,lisp,Lambda,Clojure,Functional Programming,Jvm,Lisp,我正在使用试剂编写一些代码,其中一部分涉及编写一些回调和状态操作 其中一些地方将使用默认参数调用函数,我不想对它们做任何事情。我只想返回一个常量值 例如,当我使用类似于(true)的东西时,我会得到一个异常,我必须编写(fn[\u]true)。有没有一种方法可以让lambda速记知道它得到了一个参数而没有使用它 #(do % true) 但老实说,我只是写了完整的版本,没有宏。这使它更清楚地表明了目的是什么 Clojure似乎没有Haskell的const函数的版本,这很遗憾。它接受一个值并返

我正在使用试剂编写一些代码,其中一部分涉及编写一些回调和状态操作

其中一些地方将使用默认参数调用函数,我不想对它们做任何事情。我只想返回一个常量值

例如,当我使用类似于
(true)
的东西时,我会得到一个异常,我必须编写
(fn[\u]true)
。有没有一种方法可以让lambda速记知道它得到了一个参数而没有使用它

#(do % true)
但老实说,我只是写了完整的版本,没有宏。这使它更清楚地表明了目的是什么

Clojure似乎没有Haskell的
const
函数的版本,这很遗憾。它接受一个值并返回一个函数,该函数丢弃其参数并返回该值。在这种情况下非常方便。为库编写自己的版本很简单,但是:

(defn const [value]
    (fn [_] value))

(some-hof (const true))
有了一些创意,使
const
支持任意数量的参数可能并不困难


编辑:


@amalloy指出Clojure实际上有这样的功能<代码>核心/持续

clojure.core/constantly@amalloyPfft。我不知道我怎么会错过。谢谢。可能有两份