在空白处要填什么才能通过?
(= 25 (__ square))这个问题来自克洛尔科恩。
发布于 2019-02-06 23:22:16
这是一个愚蠢的问题,不能出现在克鲁斯科恩身上。我不记得有什么奇怪的事情,当我在2014年审查考恩。
以下是答案:
(fn [f] (f 5)) ; missing piece您还需要知道,从前面的问题来看,函数square是(fn [x] (* x x))。它们必须像上面那样定义一个(非常愚蠢的格式)函数并在适当的地方调用它。在现实生活中,我从未见过这种可怕的形式。
为了记录在案,整个答案看上去如下:
(= 25 ( (fn [f] (f 5)) square))前面的问题#9定义了:
(defn square [n] (* n n))P.S.如果您还没有看到它,请查看这些站点以获得Clojure文档、示例和参考资料:
发布于 2019-02-07 14:08:32
我们需要一个应用于函数square的函数,从而生成25。答案是艾伦·汤普森 ..。
(fn [f] (f 5))..。是我们所期待的。但还有无数的其他人。最简单的是返回25的函数,不管它的论点是什么:
(fn [_] 25)这是一个足够普通的结构,有一个核心函数constantly来完成它。因此,我们可以将上面的内容缩写为
(constantly 25)通过重写对参数square的响应,我们可以将任何能够接受单个参数的函数转换为解决方案。
(defn convert [g] (fn [x] (if (= x square) 25 (g x))))例如,
=> ((convert +) square)
25发布于 2020-05-22 12:19:26
如何使用以下高阶函数:
#(% 5)下面给出了最终的解决方案?
(= 25 (#(% 5) square)))https://stackoverflow.com/questions/54563856
复制相似问题