

第一次学习函数式编程可能是艰巨而艰巨的,但是学习它可能会很有趣,并且可以改变您对代码编写方式的看法,尤其是对我而言,我从一开始就面向对象编写代码,同时学习Clojure再次激发了人们的兴奋,就像您首先要学习编码。
有很多博客向您解释了为什么应该使用函数式编程,在这个博客中,我只希望您熟悉Clojure中的代码。
Clojure是一种Lisp方言通用编程语言,它是一种编译语言,但仍然完全动态,并且在Java虚拟机(JVM)上运行。 Clojure受益于JVM丰富的生态系统,我们可以使用Clojure代码中的Java类和库。
Clojure识别两种结构:
- 数据结构的文字表示形式(例如数字,字符串,地图和向量):
用户=> 1; 一个号码
user =>“ foo”; 一个字符串
user => [“ fus”“ ro”“ dah”]; 字符串向量
- 操作,这就是您的操作方式。 所有运算都采用开括号,运算符,操作数和闭括号的形式:
用户=>(运算符操作数1操作数2 ...操作数)
例如,如果要进行数学运算,则只需执行以下操作:
用户=>(+1 2 3 4 5)
15user =>(str“追加”“”“字符串”)
“附加字符串”
这可能与您以前使用的有所不同。 在其他语言中,取决于运算符和操作数,不同的运算可能具有不同的结构。 Clojure提供了结构上的统一性,无论您使用的是哪个操作员或使用何种数据,结构都是相同的。
在Clojure中,流控制运算符也是表达式,基本的控制流很少:
如果
if是最重要的条件表达式–它由条件,“ then”和“ else”组成。 if只评估条件选择的分支。
用户=>(如果为布尔形式,则形式为可选,否则形式)
例
user =>(str“ 5是”(如果(偶数?5)“偶数”“奇数”))
5是奇数用户=>(if(true?false)“ if true”) ; 其他是可选的
零
如果和做
if仅对“ then”和“ else”采用一个表达式。 使用do创建较大的块,这些块是单个表达式。
用户=>(如果(甚至是5)
(做(println“ even”)“ foo”)
(do(println“ odd”)“ bar”)); =>奇数
; =>“酒吧”
nil,true,false,Truthiness,Equal和Boolean表达式
Clojure具有true和false值。 nil表示Clojure中没有任何 值 。 您可以使用适当命名的nil?检查值是否为nil? 功能:
user =>(没有?“ foo”)
; => falseuser =>(nil?nil)
; =>是的
nil和false都用来表示逻辑false ,而所有其他值在逻辑上都是真实的。
用户=>(如果“您爱我”“打电话给我”)
呼叫meuser =>(如果为零,则“我总是被忽略”“我是那个人”)
我就是被选择的那一位
现在,您在计算机上安装Clojure并开始学习,此博客足够温和,可以让您开始学习Clojure。 以下是一些我认为对学习Clojure有用的资源:
- https://clojure.org/
- https://www.braveclojure.com/
下一个博客将在Clojure中讨论收集和功能 。
编码愉快!