新しいプログラミング言語を学ぶ動機の1つとして新しい処理系を使いたいから、というのがある. およそ言語と処理系とは同義に語られるけれど、文法というものが結びついているのは言語であり、 機能が結びついているのは処理系である. 使いたい機能のために新しい文法を学ぶことは必ずしも楽しいこととは限らない. 奇妙な文法を受け入れる苦痛の作業である場合がしばしばある.
Elixir は本当に奇妙なだけで全く魅力的でないと思った. 部分適用もないくせにパイプ演算子 (|>
) なんて全く嬉しくない. それどころか第一引数として渡すというルールは全く不思議だ.
x |> f(y)
は f(x, y)
と評価されるらしい.
do ... end
という構文が実は , do: ...
という、連想配列の糖衣構文になっている、なんて気持ち悪さしか無い.
module の method としての関数呼び出しは methodname(args)
なのに、
f = fn x -> x end
は f.(args)
で呼び出すのも訳がわからない.
処理系のためにわざわざ新しい文法を覚えることの良さが分からない. 文法なんてどれも同じでいいのに. それは無個性である方がいい. 無個性な文法といえば S 式である.