Clojure.spec入門(4)

September 29, 2018

Clojure公式ページにある入門ガイド(https://clojure.org/guides/spec)を読みながら、clojure.specを勉強するシリーズのPart4(最終回)。

最後は自動テスト。スペックを活用して、いわゆるGenerative testやProperty-based testなどと呼ばれる自動テスト(たぶんHaskellのQuickCheckが起源)を行う。

今回のソースファイルはgen.clj


Yahooの検索ボックスを消す

September 22, 2018

FireFoxでプラグインVimVixenを使っている。JKキーでウィンドウをスクロールできる。しかし、Yahooのトップページなどを開くと、フォーカスが自動的に検索ボックスへ行くので、がっかりすることが多い(Vimperatorには、それを抑止するオプションがあったような気がするが……)。

というわけで、検索ボックスを非表示にしてみる。

userContent.css


Clojure.spec入門(3)

September 17, 2018

Clojure公式ページにある入門ガイド(https://clojure.org/guides/spec)を読みながら、clojure.specを勉強するシリーズのPart3。

ここまで、clojure.specを使って様々なデータの仕様を記述する方法を学んできた。シンプルなスペックから始め、それらを組み合わせて好きなだけ複雑なスペックを記述できるようになった。しかしもちろん、これで満足というわけにはいかない。これまで苦労してきたのは、記述したスペックを、いいことに使えるからだ。いいことのうち、大きいのは以下の2つ。

  • データがスペックに準拠しているかどうかチェックする。特に関数の引数。
  • 関数を自動テストする。引数はスペックに基づいて自動生成する。

Clojure.spec入門(2)

September 8, 2018

Clojure公式ページにある入門ガイド(https://clojure.org/guides/spec)を読みながら、clojure.specを勉強するシリーズのPart2。

Clojureでは、マップやベクタ、シーケンスといったデータ構造を多用する。そして、clojure.specはデータの仕様を記述する言語だ。今回は、代表的なClojureのデータ構造のスペックを記述する方法を学ぶ。

今回のソースファイルはcoll.clj


Clojure.spec入門(1)

September 4, 2018

Clojure公式ページにある入門ガイド(https://clojure.org/guides/spec)を読みながら、clojure.specを勉強してみよう。

環境準備

まずは、Clojureの開発環境を準備する。必要なものは、Dockerとmakeコマンドのみ。手順は以下の通りだが、Linux以外では多少苦労するかもしれない。詳細はgpsoft/doclj(https://github.com/gpsoft/doclj)を参照。