Clojure 学习入门(3)- 数字类型
来源:互联网 发布:哪个cms好 编辑:程序博客网 时间:2024/05/01 14:27
一、算术运算
加法+:加法函数(+)接受任意数值类型的参数,返回它们的和;没有参数时返回0。
减法-:减法函数(-)接受任意数值类型的参数。如果只有一个参数,则返回它相反的数。当有多个参数时,返回第一个参数减去后面所有参数的结果。
乘法*: 乘法函数 (*) 接受任意数值类型的参数并返回它们的乘积,如果只有一个参数,返回1。
除法/: 除法函数 (/) 接受任意数值类型的参数。第一个参数是分子,其他任意参数是分母。如果没有分母,则函数返回 1 / 分子,否则返回分子除以分母。
商quot: 商函数 (quot) 接受两个数值类型参数并返回第一个参数除以第二个参数的整数商。
注意:商函数quot与/函数不是等价的
取余rem: 余数函数 (rem) 接受两个数值类型参数并返回第一个参数除以第二个参数的余数。
取模mod: 取模函数(mod)接收两个数值类型参数,如果两个参数为正整数或者同为负整数,则与rem函数返回值一致;如果其中有一个负数,则结果为rem返回值与第二个参数之和。
(rem 10 -3)和(mod 10 -3)结果不一致,分别为1,-2。-2是如何得到的?由于(rem 10 -3)的返回值为1,那么(mod 10 -3)的返回值为(+ 1 (rem 10 -3))=-2
贴上mod函数源码,仅供参考。
贴上mod函数源码,仅供参考。
增量函数inc: 函数 (inc) 接受一个数值类型参数并返回它的值加1。
减量函数 (dec): 减量函数 (dec) 接受一个数值类型参数并返回它的值减1。
最大函数max: 最大数函数 (max) 接受任意数值类型的参数并返回最大的。
最小函数min: 最小数函数 (min) 接受任意数值类型的参数并返回最小的。
精度函数with-precision: 精度函数with-precision针对大数据值操作的精度、小数点运算函数。
二、比较运算:
值相等=: 值相等(=)函数接受若干参数,比较若干参数值是否相等。一个参数时,返回true。参数可以为nil。与java中的equals一致。
等价值==: 等价值函数接受若干参数,比较若干参数值是否等价。一个参数时,返回true。参数可以为nil、keyword等
值不同函数not=: 等价于(not (= obj1 obj2))
小于 (<) :小于函数 (<) 接受任意数值类型的参数,如果它们按升序排列返回true,否则返回false。
大于 (>) :大于函数 (>) 接受任意数值类型的参数,如果它们按降序排列返回true,否则返回false。
大于等于 (>=) :大于等于函数 (>=) 接受任意数值类型的参数,如果它们按降序排列或顺序相等返回true,否则返回false。
小于等于 (<=) :小于等于函数 (<=) 接受任意数值类型的参数,如果它们按升序排列或顺序相等返回true,否则返回false。
三、验证函数:
0检查zero?: 0检查函数 (zero?) 接受一个数值类型参数,如果是0返回true,否则返回false
正数检查pos?: 正数检查函数 (pos?) 接受一个数值类型参数,如果是大于0返回true,否则返回false
负数检查neg?: 负数检查函数 (neg?) 接受一个数值类型参数,如果是小于0返回true,否则返回false
偶数检查even?:
奇数检查odd?:
数值检查number?: 数值检查函数 (number?) 接受一个参数,如果是数值返回true,否则返回false
四、强制转换:
强制转换支持以下类型:
示例:
0 0
- Clojure 学习入门(3)- 数字类型
- Clojure 学习入门(3)—— 数字类型
- clojure-基本语法-数字类型
- Clojure 学习入门(1) - 学习资料
- Clojure 学习入门(2)- eclipse 插件
- Clojure 学习入门(4)- 字符串
- Clojure 学习入门(5)- 关键字
- Clojure 学习入门(6)- 函数定义
- Clojure 学习入门(7)- 连接mysql
- Clojure 学习入门(8)- 连接mongodb
- Clojure 学习入门(9)- 连接redis
- Clojure 学习入门(10)- httpkit
- Clojure 学习入门(11)- 宏 macro
- Clojure 学习入门(12)- map/pmap
- Clojure 学习入门(13)- binding
- Clojure 学习入门(14)- 循环控制
- Clojure 学习入门(15)- 条件判断
- Clojure 学习入门(16)- 正则表达式
- uprobe试用小结
- 系统命令注入的介绍与代码防御
- shell脚本调用java jar包 的问题总结
- 数据库索引
- 分享一道有意思的HTML题
- Clojure 学习入门(3)- 数字类型
- 拒绝从入门到放弃_《Python 核心编程 (第二版)》必读目录
- Android Studio 问题记录-全部java文件全部报错,却可以运行
- SQL符合函数查询
- 两个Activity之间重复相互跳转时遇到的坑
- 递归神经网络RNN原理——Elman网络原理——结合实例MATLAB(BPTT算法)实现
- Leetcode-67. Add Binary
- MySQL关于Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp
- HDU 1671 Phone List