JavaScriptで関数型プログラミングを実現するライブラリ Ramda は、構文解析、意味解析、実行までを担うオープンソース。比較的新しいので、ほぼESモジュール化されているので活用しやすい!
「ramda/ramda: Practical functional Javascript」src on GitHub
Deno向けのモジュール提供はありますが、ブラウザからは使うことができなかったので、forkして、GitHub Pages を設定し、source/index.js をimportしてみると __.js を読めずにエラー。
GitHub Pages のデフォルト設定では、"_ (アンダースコア)" で始まるファイル名は読み込めないようになっているとのこと。ルートに ".nojekyll" というファイルを置くことで無効化できて解決しました。
こちらシンプルなサンプルコード
add を使って足し算するコードです。(参照、Ramda Documentation)
このRamdaを使い、JSONを使うことで字句解析を省略した、JavaScriptわずか83行でできたシンプルなプログラミング言語 FPJSONを発見。こちらもESモジュール化して、ES-Jamから使えるようにしてみました。
「ES-Jam 〜Webプログラミング道場〜」
Denoが入った環境であれば、下記コマンドで fpjson コマンドとしてインストールすれば、すぐに試せます。
deno install -A -n fpjson https://taisukef.github.io/fpjson-es/fpjson-cmd.js
インストールできたら
["add", 1, 2]
という add.fpjson を用意して
fpjson add.fpjson 3
実行できます!(src on GitHub)
いろんな組み合わせでつくってみよう、新プログラミング言語!