【问题标题】:Clojure - Evaluating returned function from higher order functionClojure - 从高阶函数评估返回的函数
【发布时间】:2019-04-10 13:30:47
【问题描述】:

如果我在 repl 中运行一个更高阶的函数,或者返回一个函数的东西,如下所示,有没有办法稍后检索返回的函数(repl 返回的值)并评估它?

user> #(% 5 5)
#function[user/eval13160/fn--13161]

为了解释问题的原因,我在玩http-kit,并运行了函数run-server。直到执行之后我才意识到该函数返回了一个停止服务器所需的函数,因此我一直在尝试弄清楚如何使用返回的函数。

【问题讨论】:

    标签: clojure read-eval-print-loop


    【解决方案1】:

    是的,您可以使用 *1 访问以前的 REPL 值:

    user=> #(% 5 5)
    #object[user$eval3$fn__4 0x487db668 "user$eval3$fn__4@487db668"]
    user=> (*1 +)
    10
    

    还有 *2 和 *3 用于先前评估的尾随值,*e 用于先前的异常。

    你也可以def结果:

    (def my-fn #(% 5 5))
    (def my-fn *1) ;; or do it later
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-02
      • 1970-01-01
      • 1970-01-01
      • 2011-07-16
      • 2015-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多