gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 18:59:58 25 4
gpt4 key购买 nike

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

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

例如,当我使用类似#(true) 的代码时,我会得到一个异常,我必须编写(fn [_] true)。有没有办法让 lambda 速记知道它正在获取参数而不是使用它?

最佳答案

#(do % true)

但老实说,我只是写了没有宏的完整版。它使意图更清楚。

很遗憾,Clojure 似乎没有 Haskell 的 const 函数版本。它接受一个值并返回一个函数,该函数丢弃其参数并返回值。对于这种情况非常方便。然而,为您的库编写您自己的版本是微不足道的:

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

(some-hof (const true))

如果有一些创意,让 const 支持任意数量的参数可能并不困难。


编辑:

@amalloy 指出Clojure 其实有这样的功能! 核心/不断

关于lambda - 如何将伪参数传递给 clojure lambdas?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42825747/

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