clojure
clojure相关学习记录分享。笔记参照书籍:《Clojure编程实战(第二版)》
itaha
这个作者很懒,什么都没留下…
展开
-
clojure构件-元数据应用
Java类型提示 在Clojure中调用Java方法时,常常遇到Java类型提示这种元数据,保存在元键 :tag中。因使用频繁,所以有自己的读取器宏:^symbol 通过上图可知,定义了方法string-length,方法类其实是调用Java字符串的length方法。定义了两次string-length方法,不同之处在于第二次通过元数据,显式的指明了参数的Java类型。对于Clojure来说,并...原创 2019-10-27 21:17:15 · 183 阅读 · 0 评论 -
clojure构件-元数据
元数据 元数据是“关于数据的数据”。Clojure支持用其他数据来标记数据(例如映射、列表和向量),而不改变被标记数据的值。这意味着具有不同元数据的相同值在比较时仍是相等的。 元数据总是映射 用法: 使用with-meta绑定 上图定义了变量font-meta,绑定了元数据信息:meta1和:meta2 使用简写方法:**^{}**读取器宏来定义元数据 上述两种定义元数据的方法除了形式...原创 2019-10-20 22:47:27 · 164 阅读 · 0 评论 -
clojure-程序流程二
函数式循环 while loop/recur Clojure没有传统的for循环,程序可以通过使用高阶函数实现类似的行为 Clojure版本的循环流程使用loop和recur 上图定义了一个函数fact-loop 传入参数n 然后loop循环 首先通过let形式,将n绑定到current,将1绑定到fact 之后通过if判断current是否等于1 等于1则返回fact 如果不等于1...原创 2019-10-15 23:30:23 · 118 阅读 · 0 评论 -
clojure-程序流程一
条件 if if形式接受一个测试表达式,对其求值以确定下一步操作 if-not cond when,相当于if和隐含的do when-not 逻辑函数 and 接收0个或多个形式,按顺序求值,如果任何一个返回false或nil,则返回该值,如果所有形式都不返回false或nil,则返回最后一个形式的值 or 接收0个或多个形式,按顺序求值,如果任何一个返...原创 2019-10-13 21:20:40 · 93 阅读 · 0 评论 -
clojure-初始介绍
clojure是一门基于jvm平台的函数式编程语言,是lisp方言的一种,继承了lisp的大部分风格,且能够和java进行调用,被称为现代化的lisp语言 交互式命令行REPL R(read)、E(evaluate)、P(print)、L(loop) clojure程序通常不需要一次性全部输入,而是通过REPL能够输入一个表达式代码则可以立刻验证 REPL启动 安装jdk,版本1.7+ ...原创 2019-09-28 22:21:10 · 653 阅读 · 0 评论 -
clojure-数据结构
nil、真值和假值 Clojure的nil等价于Java中的null和Ruby中的nil。在nil值上调用一个函数可能导致NullPointerException异常 除了false和nil之外,其他都被视为真值 字符和字符串 Clojure使用读取宏反斜杠来表示字符,如\a或\b 字符串使用双引号表示 数值 大部分时候,在Clojure中使用的数值都是64位整数或64位浮点数。范围较小的...原创 2019-10-07 17:04:43 · 309 阅读 · 0 评论 -
clojure-程序结构
函数 Clojure是一种函数式语言,则意味着函数: 动态创建 作为参数传递给函数 从其他函数中返回 作为值保存在其他数据结构中 函数定义,使用宏:defn,也可以拆分为def 、fn,fn也用于定义匿名函数 可变参数数量,参数列表中使用**&**符号 let形式,将符号和某个值绑定,从而引入局部变量 do的副作用 对于函数来说,唯一的行为就是计算一个值并返回。调...原创 2019-10-08 22:52:43 · 134 阅读 · 0 评论