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

テストステ論

高テス協会会長が, テストステロンに関する情報をお届けします.

(mal report) ElixirでMALをはじめた

akiradeveloper/mal · GitHub

MAL (Make A Lisp)は, さまざまな言語でLispを実装してみようというプロジェクトである. 目的は, MAL作成を通じて

である. あることをするためにある言語ではどうなるかを調査するためのRosetta Code (http://rosettacode.org/wiki/Rosetta_Code) というのがあるが, やってることは同じだが, 目的は違うと言える.

MALの良いところは, インクリメンタルに実装するガイドがあることである. 最初は受け取った文字列を返すだけのREPLを作り, ... と少しずつ作っていく. その度に, MALプロジェクトの用意するテストを通していく必要がある. よくある「10日で覚えるxxxx」みたいのと同じ臭いがするが, MALでは実装を強制されるため, 身につく. そしてあくまでも, 与えられるのは考え方のみであり, 実装は自分で考えてする必要がある. レベルとしては情報学科の学部レベルだが, なかなか楽しめる内容となっている.

全く得意な言語でやっても私にとっては面白くないので, ちょうどElixirがまだやられていないため, Elixirで実装することにした. Elixirは, 以前に一瞬だけ注目して一瞬だけ勉強したが, さらに進んでLearn you Erlangを読んでいたらうんざりしてきてそれっきりになっていた. しかし最近ver1が出たようだし, Elixir自体にはやっぱり興味があるので, やってみることにした. 私のように手が早い人は, やるかやらないか迷うより, やってしまった方が早い.

Get Startedを読み直し, 早速実装を始めた. Elixir自体はふつうの関数型言語なので, ただ書くのは難しくない.

私がぱっと見たところでは, C++D言語がまだやられていないので, 「おれがC++/D言語だ!」と思う人はやってみてはどうだろうか?FSharpもまだだが, これはOCamlとほぼ同じなのでつまらない.

あと2日で週末なので楽しみだ. 一気にやりたい.