我正在http://clojurescriptkoans.com进行关闭教程,我被困在这里:http://clojurescriptkoans.com/#functions/9
看起来像这样
高阶函数采用函数参数
(= 25 ( _ (fn [n] (* n n))))
我应该在下划线处填写一些内容以使表达式成立。我不知道该怎么做。
答案 0 :(得分:31)
语法只包括绑定函数,然后调用它。
由于这是一个练习,我将展示类似的情况,而不是显示练习的解决方案:
user> ((fn [f] (f "abc")) (fn [s] (str s s s)))
"abcabcabc"
这里我将第一个函数的参数绑定到f
,并使用参数f
调用"abc"
。
答案 1 :(得分:3)
或者您可以使用简写符号:
#(%1 5)
答案 2 :(得分:0)
高阶函数将函数作为参数。 定义两个功能
user=> (defn multiply [n] (* n n))
#'user/multiply
user=> (defn add [n] (+ n n))
#'user/add
定义高阶函数
user=> (defn highorderfn [fn number] (fn number))
#'user/highorderfn
调用高阶函数
user=> (highorderfn multiply 5)
25
user=> (highorderfn add 5)
10