カラクリサイクル

『輝かしい青春』なんて無かった人の雑記

文法がキモくない関数型言語が欲しい

基本、妄言の類いです。


まぁ、プログラミング言語の文法がキモいキモくない、っていうのは、 相当に主観的な感じなんで、あんまり他人の評価と比べ様もない話ではありますが、 ここの所、どうにも、

文法 (基本的な Syntax) が、独特ではない関数型言語が欲しい

とか思っています。

と言うのも、理想を言えば NixOS の Nix expression language でプログラミングとか出来たらなーとか思ってたりもするのですが、 この言語はシステムを宣言的に設定を行うのに特化しているため、Nix の言語本体の機能だけではプログラムが自己完結できないのと、 あと、パッケージマネージャ的な側面を取り除いた、純粋な Nix 言語の実行環境が無いっぽいため、 Nix expression language だけでプログラミングするのは、あんまり向かない感じなんですよね。

それで、

じゃあ Nix expression language が使えるランタイムを作れば良いのでは?

とか自分でも思って色々と調べてたんですが、これはこれで面白そうな挑戦ではあるもの、 一朝一夕でそんなに簡単に言語処理系が作れる訳でもないので、まあ現実、そう上手くは出来てないよなぁ、と。

たたし、Nix expression language のパーザ部分に関して言えば、 これは外部ライブラリとして利用可能な感じだった (pkg-config の定義とかが存在する) ので、 まあ作ろうと思えば、Nix expression language を使った、処理系とか作れそうではありました。 が、やっぱりそんなに一筋縄でモノが作れるか、というと、色々と考えないといけない部分 (標準ライブラリの構成とか) もあるので、 まー面白そうだけど、やっぱりそんなに簡単ではないよなぁ、と。

ま、この辺りは自分でなんとかするしかない部分だとは思いますけどね。


ちなみに。

一応、僕が名前を知っている関数型言語は、

  • elixir
  • Erlang
  • Haskell
  • OCaml
  • Elm
  • purescript
  • Rust (これって関数型言語なのか……?)

辺りで、この中では elixir が一番読み易い感じではあり、前に入門してみたいなーとは思った事が有ったものの、 まあ、それっきりでほぼ触らずに終っています。まあ、一回真面目に入門しろやって話ではありますが。 あと、Javascript への transpiler である elixirscript ってあるみたいですね。 さっき調べて一発で見付けてしまい、流石にマジで!? と思いましたが。


まあ、Nix expression language でプログラミング……とか考えると、 やっぱり処理系を自作するしかないのかなぁ……と思ってます。はい。