除了map,filter,reduce之外,还有clojure核心中的众多其他函数,它们是我必须学会提高效率的下一组最有用/最常用的函数吗?
答案 0 :(得分:8)
如果你转到4clojure problems页面并搜索“核心功能”,你会发现4clojure团队认为有用的一堆。仅举几例:
答案 1 :(得分:5)
序列处理库对我来说很多是Clojure Clojurish。这个想法是在单个数据类型上具有许多函数,而不是在几种类型上的几个函数。所以我想说学习所有的序列操作函数可以带来很大的好处。
ps:for
,reductions
和iterate
答案 2 :(得分:5)
备忘单非常有用:http://clojure.org/cheatsheet,阅读时间不长。
答案 3 :(得分:4)
你的map,filter和reduce列表涵盖了一些biggies,因此添加到该列表可能会复制你已经知道的内容。
Clojure的优势之一是同步。我将开始编写示例代码以了解如何使用这些同步构造,引用,代理和原子。很多Clojure书都涵盖了它。我知道Clojure in Action很好地涵盖了这些。
我会使用地图,虽然我没有特别提到一个函数,但是为什么地图一般都是好的以及多方法。
最后,我会解释为什么你有时需要使用循环..复发。我在过去1年多的建议非常合理。在必要的时候使用它。
答案 4 :(得分:3)
我会发现一些难以忍受的生活:
inc
/ dec
- 用于循环,递归,逐个修复等。assoc
- 用于更新地图comp
- 用于撰写高阶函数partial
- 使用参数子集构建高阶函数apply
- 用于将参数向量传递给函数conj
- 用于添加(任何类型的)集合first
/ next
- 用于操纵头端的序列seq
- 用于创建序列,或使用(if (seq x) ...)
还有一些特殊形式/宏不是严格的功能,但你也会发现非常必要 - 例如fn
,loop/recur
,cond
,and/or
,for
,doseq
,let
等。
答案 5 :(得分:1)
reduce,cons,first,rest,loop / recur,fn和[de structuring]是我最常用的形式。编辑:哦和分区 - 上帝,这是一个有用的功能!
答案 6 :(得分:0)
DO
我认为当你第一次使用Clojure时,你会一直使用“do”,这样你就可以完成任务,因为它可以让你以强制方式编程。随着你对Clojure的了解增加,你会发现你对“do”的使用会减少