代替:
(run-jetty (fn [request] (response "hello")) 6789)
我想(忽略给参数):
(run-jetty #(response "hello") 6789)
即,我想使用匿名函数来节省一些打字。显然,它会在运行时引发错误,因为匿名函数将被赋予一个它不想处理的参数(即请求)。那么实现这一目标的惯用方法是什么?
代替:
(run-jetty (fn [request] (response "hello")) 6789)
我想(忽略给参数):
(run-jetty #(response "hello") 6789)
即,我想使用匿名函数来节省一些打字。显然,它会在运行时引发错误,因为匿名函数将被赋予一个它不想处理的参数(即请求)。那么实现这一目标的惯用方法是什么?
我发现我的问题与这个重复。
我还发现constantly
它确实是恒定的:它将缓存结果以供子序列使用。虽然这不是我想要的,但很高兴知道:
demo1.core=> (defn foo [] (rand))
#'demo1.core/foo
demo1.core=> (def aa (constantly (foo)))
#'demo1.core/aa
demo1.core=> (aa)
0.8006471724049917
demo1.core=> (aa 1)
0.8006471724049917
demo1.core=> (aa 1 2)
0.8006471724049917
以防万一像我这样的其他人正在寻找同样的东西。
这取决于您的确切用途,但我会使用该constantly
功能。
(run-jetty (constantly (response "hello")) 6789)
如果您尝试使用匿名函数延迟计算,那么这将不起作用(提示:在这种情况下使用delay
and force
),但对于环处理程序,它会很好地工作。