Lyの日常

主が楽しくプログラムをカキカキするブログ

俺でもわかるClojure入門 part2

前回(俺でもわかるClojure入門 part1 - Lyの日常)
NightCodeを使用して
足し算、引き算をやってみました
今回は条件分岐を書いていきます

NightCodeでプロジェクト作成

前回使った下の部分
f:id:akira206:20160930033627p:plain
簡単なコードを試すのには便利なんですが
改行とか考えると不便なので
プロジェクトを作ってみましょう

Start -> Console App
f:id:akira206:20161005125938p:plain

名前は適当にclojuretestにしました^q^
f:id:akira206:20161005130236p:plain

InstaREPL

コードを書きながら実行結果が知りたい時が多々あります
NightCodeではREPLが使用できるので実際に使ってみましょう
REPL(Read-Eval-Print-Loop) まぁやってみればわかるですよ。ω。
InstaREPLってところポチッと押してくださいな

足し算引き算を書いてみた例
f:id:akira206:20161005131414p:plain
こりゃたまげた!!
コードを書いたそばから実行結果が丸見えじゃないですかやだぁ!

という感じのものです。

if true false

条件によって別の処理を実行したい!
って時に条件分岐を使いますですゾ

まぁやってみましょう!

; ifの書き方
; (if boolean-form
;     then-form
;     optional-else-form)
; (if (条件) (条件がtrue(真)の時の処理) (それ以外の処理))

(if true 1 2) ;-> 1
(if false 1 2) ;-> 2

複雑な条件

実際のコードでは条件の部分に直接true falseは書きません、ω、
うん、セブンのシューロールケーキ美味しい^q^

; (= a b)
; a b が同じものか判定する

(= 1 0) ;-> false
(= 2 2) ;-> true
; (or a b c...)
; a b c.. どれかがtrueであればtrue

(or false false) ;-> false
(or false false false true) ;-> true

(or (= 0 1) (= "a" "b")) ;-> false
; (and a b c...)
; a b c...全てがtrueの場合true

(and true false) ;-> false
(and true true true) ;-> true

こんなん書いてみた

(if (= "Me" "Genius")
  (println "I'm Genius!")
  (println "No way!"))

;-> No way!

; printlnは文字列出力関数です
; REPLではnilと出ますが
; Run で実行すれば下のコンソールに出力が出ると思います
; nilについてはまた今度

おっつ

条件分岐たのちい
実はもっとたくさんの条件用の関数があり
もちろん自分で作ることもできます

次回は定義についてやろうかな
ではでは、ω、