clojure学习
clojure通过reader来读取字符流,根据不同的读形式来产生不同的数据结构。
reader forms
1: 标识符
标识符以非数字字符开始,可是包含数字在内的字符,还有*, +, !-,_和?. /用来分割命名空间,.表示类名修饰引用,标识符中包含.和/被称为被修饰过的, 以“:”开始的符号被保留。
标识符相当于变量,是对一种事务的命名抽象,通过标识符来引用这个对象。
从标识符的源码中可以看到, 标识符实现了IFn和Named接口, 标识符有所属的命名空间(Named), 引用符号是会在TR中寻找标识符的对象。
2: 常量:
字符串 "sss"
数字: 整数,浮点数和有理数
字符: \s eg: (str "ss" \newline)
nil: 表示什么都没有和空值,相当于null和false
布尔值: true false
关键字:像标识符除了(”:"开始, 不包含.和类名) { :name "s", :age 22}
3: 列表:
( a b c ) 常量列表'( 1 2 3)
4: 向量:
[ 1 2 3 ]
5: Map:
{ :s "s" :d 12 :f 3} 或 { :s "s", :d 12, :f 3}
6: 集合
#{ 1 2 3 } #{ :s :d }
宏符号:
宏符号是reader读取forms的快捷方式。宏字符不能用于标识符
1: Quote 引用(')
'form => (quote form)表示引用form, form可以为上面所有的form, 'd , '1 'nil
2: Character字符(\)
产生一个字符常量, \s
3注释 (;)
单行注释
4:Meta 元数据(^)
^form => (meta form) 查看对象的元数据
5: Deref 用引(@)
@form = ( deref form)解引用,取引用的值,相当于'的饭作用
6: Dispatch分派(#)
#“pattern" 正则表达式
#^设置元数据 标识符,列表,向量和字典有元数据 , 这个宏符号读取第一个map把他设置都后面的对象上。
#^String x, 表示 #^{:tag String} x, 用来存储类型信息
#’ var-quote
#'x = (var x)表示标识符本身
#()匿名函数 %n参数位置, %&表示剩余参数
#() = (fn [args] (...)) ( #(+ %1 %2) 1 2 )
语法语录 Syntax-quote( `note, ~Unquote, ~@Unquote-splicing)
除了标识符,列表,向量,字典 `s和‘s是相同的
对于标识符,`d 引用目前上下文中的标识符,产生一个修饰标识符, 如果标志没有命名空间并且以'#’结束,它引用一个相同的名字加_再加一个唯一id组
对于列表,向量,字典,`建立一个相应数据结构的模板,在这个模板内,没有修饰的forms就像·递归的应用,但是form的`递归应用能够通过~和~@修饰来消除, ~产生值, ~@产生序列值
分享到:
相关推荐
Clojure学习教程.pdf
Clojure学习文档,Clojure-Web开发学习,覆盖了Clojure由浅入深的基本学习
NULL 博文链接:https://clojure.iteye.com/blog/1741375
NULL 博文链接:https://clojure.iteye.com/blog/1742475
Clojure学习笔记 为什么要学习Clojure 我写Java也有10多年了,其间用过Python、PHP、Ruby、Groovy、JS等动态语言。Java相对C、C++来说有明显的优势,可以说是一种更高级的语言,高级语言带来的优势是能用更少的代码...
钟表音符Clojure学习笔记
” —共和国的柏拉图关于ClojureFam是一个学习程序,适合那些想要尝试使用Clojure(Script)和DataScript(这是当今存在的两种最强大,最优雅的技术)的人。 通过了解ClojureScript(一种功能不变的Lisp)和Data...
学习编程语言 Clojure 的站点这是一个Clojure 答案的存储库。 回答 test runner 进行测试,答案在所在的位置。测试运行器本身也是用 Clojure 编写的。 跑步 它需要 JVM 和 Leiningen 才能运行。运行时,它会对所有...
Clojure库旨在...好的,这取决于您。 用法 整我 执照 版权所有:copyright:2020 FIXME 该程序和随附的材料根据Eclipse Public License 2.0的条款提供,可从。 当满足Eclipse Public License v。2.0中规定的可用性...
sicp-clojure 在 Clojure 中解决的 SICP 练习
Java采购管理信息系统源码
美国亚马逊高分评价书籍,学习Clojure的好资料《Living Clojure》
clojure关于机器学习的资料,看了下,还不错哦
几分钟内学习Clojure 解压密码 www.jiangyea.com
clojure是基于jvm的lisp的方言 storm就是由它开发的 感兴趣的同学可以学习
动手全栈Clojure 封闭反馈循环以学习项目规模的Clojure(脚本)动机Clojure(script)是现代的Lisp方言,通常是一种不错的编程语言。 它一直在倡导的一种哲学是拥有的,而则是珍贵的瑰宝(尤其是clojurescript中的热...
带语法高亮的clojure 1.4 解释器, 对学习clojure很有帮助
沙盒测试和学习存储库。 目标: 学习 Clojure 学习 Clojure Web 开发刷新 Javascript 并学习 JQuery
Clojure编程乐趣(英文版),对学习Storm有很大的帮助,值得看。
深层思想用于执行深度学习的 Clojure 库。要求用法仍在进行中。 这个想法是在 Clojure 中重新创建一个深度学习算法。 我将从研究到现有实现(包括 Theano)中创建组件。免责声明这个项目是 Eoin Hurrell 和贡献者的...