読者です 読者をやめる 読者になる 読者になる

Clojureはじめました。

これはIshikuro Advent Calendar 2013 - Adventarの記事です。
明日はishikuroさんの記事です。

Clojure

JVMで動くLisp系言語らしい。Javaの資産が使えるそうだよ。

Install

あ、debianです。

# apt-get install clojure1.4 leiningen

それではClojure 超入門 - Qiita [キータ]を参考に進めます。

Hello World

これでインタプリタの起動だそうです。

$ lein repl
REPL started; server listening on localhost port 65118
user=> 
(println "Hello World")
;Hello World
;nil

まぁわかる。

(* (+ 1 2) (- 3 4))
;-3

これもわかる。(1+2) * (3-4)ね。短期留学のComputer Languageの授業でやりました。

cons, first, rest

境界を越える: Lisp の美しさ

(cons 'lions '(tigers bears))
;(lions tigers bears)
(first '(lions tigers bears))
;lions
(rest '(lions tigers bears))
;(tigers bears)

ま、まって。このへんから分からなくなったんだ。Clojureどころではなく、Lisp入門になりそうだ。(それにしてもIBMの文書は文字ぎっしりで見づらい。googleでhitしても読まないよね)

対話によるCommon Lisp入門 17 first rest cons - by shigemk2

リストの最初を取り出すのがfirst
リストの最初以外を取り出すのがrest
リストの最初に何かを追加するのがcons

consはconstructorの略だそうだ。

で、'を置かないで書いたものは、評価されてしまう(関数っぽく動いてくれることを期待される)ので、単にリストとして扱いたい場合は'を置くということのようだ。

Lisp 一夜漬け -- 2.リスト
Lispのリストについてはここが図付きで詳しかった。

fn, defnらへん

なんとなくわかる。

つーか飽きてきた。だからなにができるの?って感じ。結局、関数型言語で出来ることはフィボナッチ数列を求めることだけなんですか?Clojureにはそんなことを期待していなかったのだが。。

Leiningen

レイン人間?半分人間の仲間ですかね。

Leiningenで簡単Clojureプロジェクト - t2ru's blog

$ lein new testproject
$ ls -a testproject
.gitignore project.clj  README  src  test

おぉ、gitignoreまで生成してくれるとは、モダンな感じ。

Clojars

これを使えばなにかできそうですね。
続きは明日。