11

除了 map、filter、reduce 之外,clojure 核心中的许多其他功能,还有哪些是我必须学习才能提高生产力的下一组最有用/常用的功能?

4

7 回答 7

8

如果您转到4clojure 问题页面并搜索“核心功能”,您会发现 4clojure 团队认为有用的一堆。仅举几例:

  • 通过...分组
  • 清楚的
  • 减少
  • 频率
  • 分割
  • 合并
  • 交错
  • 介入
于 2012-08-17T19:57:21.843 回答
5

备忘单很有用:http ://clojure.org/cheatsheet ,阅读时间不会很长。

于 2012-08-17T20:38:46.500 回答
5

序列处理库对我来说是 Clojure Clojurish 的主要组成部分。这个想法是在单一数据类型上拥有多个函数,而不是在几个类型上拥有几个函数。所以我想说学习所有的序列操作函数会有很大的好处。

ps: 为for, reductions, 和iterate

于 2012-08-17T19:59:11.830 回答
4

您的 map、filter 和 reduce 列表涵盖了一些重要内容,因此添加到该列表可能会重复您已经知道的内容。

Clojure 的优势之一是同步。我将开始编写示例代码来学习如何使用这些同步结构、引用、代理和原子。许多 Clo​​jure 书籍都涵盖了它。我知道Clojure in Action很好地涵盖了这些内容。

我会使用地图,虽然我不是专门指一个函数,而是为什么地图一般以及多方法都很好。

最后,我会解释为什么你有时确实需要使用 loop .. recur。我在过去 1 年多的时间里得到的建议非常中肯。绝对必要时使用它。

于 2012-08-17T19:44:21.030 回答
3

没有一些我会很难生活的东西:

  • inc/ dec- for 循环、递归、非一修复等。
  • assoc- 用于更新地图
  • comp- 用于组合高阶函数
  • partial- 使用参数子集构建高阶函数
  • apply- 用于将参数向量传递给函数
  • conj- 用于添加到集合(任何类型)
  • first/ next- 用于从头端操作序列
  • seq- 用于创建序列,或测试空序列(if (seq x) ...)

还有一些特殊的形式/宏,它们不是严格意义上的函数,但您也会发现非常重要 - 例如fn, loop/recur, cond, and/or, for,doseqlet

于 2012-08-18T01:54:48.940 回答
1

reduce、cons、first、rest、loop/recur、fn 和 [de structuring] 是我最常用的形式。编辑:哦,分区-天哪,这是一个有用的功能!

于 2012-08-18T05:32:01.200 回答
0

我认为当您第一次使用 Clojure 时,您将一直使用“do”,这样您就可以完成工作,因为它可以让您以命令式的方式进行编程。随着您对 Clojure 的了解增加,您会发现您对“do”的使用减少了

于 2012-08-25T15:47:51.843 回答