Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure 使用函数中的分部作为映射上的值_Clojure - Fatal编程技术网

Clojure 使用函数中的分部作为映射上的值

Clojure 使用函数中的分部作为映射上的值,clojure,Clojure,首先;很抱歉,如果我使用的术语不正确,我对clojure仍然很陌生,范式转换需要一些时间 我正在尝试使用一个函数,该函数从大于12的集合中获取第一项(是一个“青少年”数字)。当我直接将它应用于一个集合时,我可以编写这个函数,但我不确定如何在映射中编写函数。谁能给我指出正确的方向吗 我尝试了几件事,通常是沿着(partial(first(filter(partial((:最后一些函数)测试集) 29 >((:第十个函数)测试集) 15 当然,您也可以明确定义函数并在映射中使用它: > (d

首先;很抱歉,如果我使用的术语不正确,我对clojure仍然很陌生,范式转换需要一些时间

我正在尝试使用一个函数,该函数从大于12的集合中获取第一项(是一个“青少年”数字)。当我直接将它应用于一个集合时,我可以编写这个函数,但我不确定如何在映射中编写函数。谁能给我指出正确的方向吗

我尝试了几件事,通常是沿着
(partial(first(filter(partial<12)))
的思路进行的,但到目前为止没有任何运气,而且对filter/partial的定义的研究还没有取得成果

TL/DR 我想要有一个函数,作为映射中的一个值,它接受列表中大于12的第一项

(def测试集[1,8,15,22,29])
(def)一些函数{
:首先
:最后
:第十句“我不知道该在这里放什么”
})
(第一个(过滤器(部分<12)测试集))

一种方法是在定义映射()时使用匿名函数

>(定义一些函数{
:首先
:最后
:teenth#(第一个(过滤器(部分<12%))})
>((:第一部分功能)测试集)
1.
>((:最后一些函数)测试集)
29
>((:第十个函数)测试集)
15
当然,您也可以明确定义函数并在映射中使用它:

> (defn teenth [coll] (first (filter (partial < 12) coll)))

> (def some-functions {
  :first first
  :last last
  :teenth teenth})
>(defn teenth[coll](第一个(过滤器(部分<12)coll)))
>(def)一些函数{
:首先
:最后
:teenth teenth})

(顺便说一句,小心使用单词
set
。在clojure中,集合是唯一值的无序集合。)

一种方法是在定义映射时使用匿名函数()

>(定义一些函数{
:首先
:最后
:teenth#(第一个(过滤器(部分<12%))})
>((:第一部分功能)测试集)
1.
>((:最后一些函数)测试集)
29
>((:第十个函数)测试集)
15
当然,您也可以明确定义函数并在映射中使用它:

> (defn teenth [coll] (first (filter (partial < 12) coll)))

> (def some-functions {
  :first first
  :last last
  :teenth teenth})
>(defn teenth[coll](第一个(过滤器(部分<12)coll)))
>(def)一些函数{
:首先
:最后
:teenth teenth})

(顺便说一句,小心单词
集合
。在clojure集合中,集合是唯一值的无序集合。)

我发现@jas的答案有一点改进

功能

#(first (filter (partial < 12) %))

[1]


[2]

我发现@jas的答案有一点改进

功能

#(first (filter (partial < 12) %))

[1]


[2]

非常感谢您的帮助性回答;特别是到教程的链接,以及关于使用
set
的说明;我渴望掌握术语,所以这种指针非常有用!非常感谢你的回答;特别是到教程的链接,以及关于使用
set
的说明;我渴望掌握术语,所以这种指针非常有用!这是一个非常有趣的答案,非常感谢您的额外输入!这是一个非常有趣的答案,非常感谢您的额外输入!
(fn [coll] (some #(if (< 12 %) %) coll))
(defn teenth [coll] (some #(if (< 12 %) %) coll))
(fn [coll] (some (fn [e] (if (< 12 e) e)) coll))