valid,invalid

関心を持てる事柄について

Clojure との出会い

会社でちょっとした Rust meetup があり、俺も何か新しいのをやりたいぞ!という気持ちになって Clojure 始めてみた。

理由

なぜこの流れで Rust でないのか??

Exercism

上記 meetup で Exercism という、課題を解きながらプログラミング言語を学べるサイトを知ったのでこれでとりあえず Hello world している。

exercism.io

github.com

感想

こんにちはした感想と学び

Clojure用のビルドツール兼パッケージ管理ツール Leiningen が物凄く便利

  • REPL もあって LL 的に学べる
  • JVM系言語の Hello World までの遠さがない
  • brew install leiningen で環境構築できるのでつまづかない

Leiningen の使い方

  • lein new: Clojure project を新たに生成
  • lein test: テスト実行
  • lein repl: REPL 起動
  • lein deps: ライブラリダウンロード。project.clj ファイルの :dependencies に依存するライブラリを書いておく

オプション引数の与え方

Javaオーバーロード的な感じでもあるが、よりスマートに書ける。ところで Java はいつオプション引数がサポートされるんですかね(まさか知らないだけで、もうされている…?)

(defn hello
  ([] (hello "World"))
  ([arg] (str "Hello, " arg "!")))

括弧が多い

括弧が多いです。とはいえ (), [], {} が使い分けられているようなので、他の LISP 系言語よりマシらしい。


というわけでやっていきます。