Clojure - 从高阶函数评估返回函数

问题描述 投票:3回答:1

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

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

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

clojure read-eval-print-loop
1个回答
5
投票

是的,您可以使用*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
© www.soinside.com 2019 - 2024. All rights reserved.