1、Clojure认为值是最重要的概念,值可以是数字,字符串,向量,映射,集合。注:值定义后就不可修改,如果修改只能重新引用值关系,不能直接修改值
2、Clojure使用def绑定值得关系。例如:(def hello (fn [] "hello world")) 意思是定义hello函数打印hello world。
使用defn重新绑定值的关系。例如:(defn hello [] "goodnight moon")
3、Clojure希望第一个参数是函数值,如果不为函数值会报错,quote除外。该方法返回后续列表值。例如:(queto (1 2 3)) ==>(1 2 3)
4、Clojure的向量使用vector,该函数值等同于JAVA中的LinkedList或ArrayList。例如:(vector 1 2 3) ==》 [1 2 3] 注:可以使用简化方式(vec '(1 2 3))
5、Clojure的函数nth有两个参数,集合和索引。 例如:(nth '(1 2 3) 1) ==> 2
6、Clojure支持映射即java中的hashmap,使用{},带冒号的映射键称为关键字。 例如:(def foo {"a" "a1" "b" "b1"}) (foo "a") ==> "a1" (def person {:nmae "chenbowne",:age "18"}) (person :name) ==> "chenbowen"
7、Clojure支持集即java中的set,例如: #{"apple" "pair" "peach"}
8、Clojure的sort-by函数有两个参数,一个用来排序的函数,一个是要排序的向量
9、Clojure使用读取器宏和派发读取宏简化代码。例如:#' 标识展开为(var); #{} 表示
10、Clojure序列使用seq,基本序列函数如下:
(1) (seq <col>)返回一个序列,所操作集合的视图;(first <clo>)返回序列第一个元素,如果集合为空则返回nil
(rest <col>)从集合去掉第一个元素后返回新的序列,为nil则返回nil;(seq? <o>)如果O为序列则返回true
(cons <elt> <coll>)在集合前面新增元素,并返回新序列;(conj <elt> <coll>)返回将新元素加到合适一端新的序列。
(every? <pred-fn> <coll>)如果(pred-fn)对集合中的每个元素都返回逻辑真,则返回true;
11、Clojure可以使用带变元参数的函数,例如: (defn const-fun-arity1 ([] 1) ([x] 1) ([x & more] 1)) 表示const-fun-arity1函数可以不带参数,带一个参数,带一个或多个参数。但是都返回1。
12、Clojure可以直接使用java中的方法,底层用.宏实现的,可以直接使用Object的方法,可以使用import导入JAVA类。例如(defn printLen [y] (.length (.toString y))) (import '(java.util ArrayList LinkedList))
13、Clojure的宏proxy可以扩展JAVA类或接口。例如:(def lbq (LinkedBlockingQueue))(def msgRdr (proxy [Runnable] [] (run [] (.toString (.poll lbq))))) 表示实现Runnable接口
分享到:
相关推荐
- **在线论坛和社区**: 学习者可以通过参与Clojure的在线社区,如Clojure用户组、Stack Overflow等获取帮助和支持。 - **书籍**: 有许多优秀的书籍可以帮助深入理解Clojure的语言特性和最佳实践,如《Clojure in ...
- **机器学习基础**:介绍如何使用 Clojure 实现简单的机器学习算法,如线性回归、决策树等。 3. **实践篇**:通过具体的项目案例来巩固前面所学的知识。 - **文本分析**:使用自然语言处理技术进行文本挖掘,如...
总结起来,Keenest-Rube是针对Linux环境下的Kubernetes操作提供的一款Clojure工具,它通过简洁的API和Clojure的强大功能,使得Kubernetes集群管理变得更加高效和便捷。对于熟悉Clojure的开发者来说,这是一个非常有...
1. **《Programming Clojure》**:这是学习Clojure的第一本书,适合初学者入门。书中详细介绍了Clojure的基本概念、核心特性和常见用法。 2. **《Practical Clojure》**:这本书是《Programming Clojure》的进阶版...
通过本书的学习,读者可以掌握 Clojure 的核心概念和最佳实践,并能够利用这些知识来开发高效、可维护的软件系统。 #### 二、Clojure的核心特性 1. **纯函数式编程**:Clojure 支持纯函数式编程风格,这种风格强调...
- **Ola Bini**:作为Ioke语言的创建者和ThoughtWorks的开发者,他认为Clojure是当前最有趣的语言之一,而这本书通过提供最新的信息、实用的例子以及学习Clojure的有效技巧,使得学习Clojure的过程变得更加容易。...
总结来说,"microservices-with-clojure"的学习笔记将带你深入了解如何利用Clojure的强大力量,结合Pedestal和Datomic等工具,构建高效、可扩展的微服务。这包括理解Clojure的函数式编程理念,掌握Pedestal框架的...
《Clojure in Action》不仅是一本学习Clojure语言的好书,同时也是一本深入了解函数式编程理念的宝贵资源。无论是初学者还是有一定经验的开发者,都能从中获得有价值的洞见。通过这本书的学习,读者可以更好地理解和...
### 知识点总结 #### 一、Clojure语言简介及其在Web开发中的应用 ...它不仅覆盖了基本概念和核心库,还提供了丰富的实践案例和专家建议,对于任何想要学习或深化Clojure Web开发技能的人来说都是不可或缺的资源。
《Clojure 数据结构与算法食谱》是一本不可多得的好书,它不仅提供了丰富的代码示例,还包含了作者多年的经验总结。通过学习本书,开发者可以系统地掌握如何在Clojure中高效地处理复杂的数据和算法问题,进一步提升...
### Clojure 速查表(1.4 版本)知识点总结 #### 一、概述 Clojure 是一种运行在 Java 平台上的 Lisp 方言,它支持函数式编程,并且具有良好的并发处理能力。本速查表为 Clojure 1.4 至 1.7 版本提供了一系列常用的...
总结起来,这个Leiningen插件为Clojure开发者提供了一种在Jupyter Notebook中编写和执行Clojure代码的方式,极大地扩展了Clojure的使用场景,特别是在数据科学和教育领域。通过熟悉和掌握这个工具,Clojure开发者...
Clojure CLI工具是Clojure生态系统中的一个重要组成部分,它为开发者提供了构建、测试和...通过学习和理解`clojure-cli-tools-build`的示例构建脚本,你可以更好地掌握这一工具,从而提升ClojureScript项目的工作流。
总结来说,Clojure结合`docjure`库,为处理Office文档提供了一种高效、灵活的解决方案。通过函数式编程的力量,开发者可以方便地读取、操作和写入Excel文件,而无需深入了解底层的文件格式。无论是在数据分析、报表...
总结来说,bayadera是一个利用Clojure和GPU技术进行高性能贝叶斯数据分析的工具,它结合了统计、机器学习和并行计算的精华,为科研人员和数据分析师提供了一个强大且灵活的解决方案,帮助他们高效处理大规模数据集,...
总结来说,学习“clojure-scripting”涉及以下步骤: 1. 安装Clojure和GraalVM:确保你的系统上已经安装了JVM,然后下载并安装Clojure的命令行工具和GraalVM。 2. 学习Clojure基础:理解Clojure的语法,学习如何...