clojure-数据结构

nil、真值和假值
  • Clojure的nil等价于Java中的null和Ruby中的nil。在nil值上调用一个函数可能导致NullPointerException异常
  • 除了false和nil之外,其他都被视为真值
字符和字符串
  • Clojure使用读取宏反斜杠来表示字符,如\a或\b
  • 字符串使用双引号表示
数值

大部分时候,在Clojure中使用的数值都是64位整数或64位浮点数。范围较小的整数运算产生较大结果时,会产生溢出现象,则此时可将其提升为大整数,使用一组替代函数:+’、-’、*’、inc’、dec’

  • 整数:Long
  • 大整数:bigint
  • 比例:rationalize,如:1/3
  • 大十进制数:bigdec
  • 浮点:double
符号和关键字

符号是Clojure程序中的标识符,代表值的名称。如(+ 1 2),+代表加法函数的符号

符号通常解析为不是符号的其他内容。可以通过一个前导的单引号,将其表示为一个值而不是符号
符号解析

关键字类似于符号加单引用,以冒号开头,如::itaha。典型用法是作为哈希映射中的键和枚举值

可以用keyword和symbol函数从字符串中构造关键字和符号
构造符号和关键字

列表

Clojure中的列表是单链表,这意味着你只能从列表的头部删除或添加元素,也意味着不同的列表可以共享相同的尾部

  • 使用list函数创建列表

  • 使用conj函数创建一个新列表, 并添加值
    创建列表添加元素

  • 使用first或peek函数获取头部第一个元素,使用rest或pop函数获除头部第一个元素剩下的元素,使用count函数计算列表元素个数
    获取列表元素和个数

每个Clojure代码表达式都是一个列表,列表中出现的第一个元素为函数或宏的名称,后面的元素为函数参数

向量

向量用方括号表示,用数字作为索引

  • 用vector创建向量,或用方括号直接创建向量
    创建向量

  • 使用索引取出向量中的元素
    取向量元素

  • 使用assoc函数添加或修改向量元素
    添加或修改向量元素

映射

映射由键-值对序列组成,用花括号表示

  • 创建映射
    创建映射
  • 获取映射元素,映射本身或关键字都是函数
    获取映射元素
  • 修改映射元素,使用assoc和dissoc函数
    修改映射元素
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Clojure编程是一本介绍Clojure编程语言的书籍,可以作为学习和参考的资源。这本书涵盖了Clojure语言的基础知识,包括语法、数据结构、函数式编程等内容。它适用于初学者和有一定编程背景的人士。 这本书主要分为四个部分。第一部分介绍了Clojure语言的基本语法和数据类型,例如列表向量、集合等。它还介绍了命名空间和宏的概念,帮助读者理解Clojure的核心思想和设计。 第二部分深入探讨了函数式编程的概念和技巧。它讨论了函数的定义和使用,以及函数式编程的特点和好处。此外,它还介绍了Clojure中的高阶函数和持久化数据结构,以及如何处理并发编程和错误处理等主题。 第三部分介绍了Clojure编程的实践技巧和最佳实践。它包括代码组织、测试、调试和性能优化等方面的内容。它还提供了一些现实世界的示例和项目案例,帮助读者将Clojure应用到实际的开发中。 最后一部分讨论了Clojure与其他编程语言和工具的集成。它涵盖了与Java的互操作性、使用Clojure开发Web应用、使用Clojure与数据库交互等方面的内容。同时还介绍了Clojure生态系统中的一些重要库和框架,例如Ring和Compojure等。 总的来说,Clojure编程是一本全面而深入的Clojure学习资源,可以帮助读者掌握该语言的各个方面。无论是初学者还是有经验的开发人员,都可以从这本书中收获到对Clojure编程的深入理解和实践经验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值