jav*_*guy 0 clojure code-snippets
如何理解这个简单的clojure代码?我有点理解它想要做什么,但有人可以非常详细地解释语法,所以我可以自信地使用它吗?
(map (fn [x] (.toUpperCase x)) (.split "Dasher Dancer Prancer" " "))
Run Code Online (Sandbox Code Playgroud)
来自Clojure REPL:
(doc map)
clojure.core/map
([f coll] [f c1 c2] [f c1 c2 c3] [f c1 c2 c3&colls])返回一个惰性序列,包括将f应用于第一组的结果每个coll的项目,然后将f应用于每个coll中的第二项集合,直到任何一个colls都用完为止.其他colls中的任何剩余项都将被忽略.函数f应该接受colls of colls参数.
(.split"Dasher Dancer Prancer""")生成一个字符串序列,每个标记化的字符串将传递给(fn [x](.toUpperCase x))
但是,(fn [x](.toUpperCase x))是太多不必要的打字.你可以做:
(map #(.toUpperCase %) (.split "Dasher Dancer Prancer" " "))
Run Code Online (Sandbox Code Playgroud)
要么:
(map (memfn toUpperCase) (.split "Dasher Dancer Prancer" " "))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
217 次 |
| 最近记录: |