JavaScriptを学びます and algebraic datatypes emulation
動機
ようやくSafariのWebGL 2.0実装が実用レベルに近づいてきたので、近々主要ブラウザ全てがWebGL 2.0をサポートすることになります。これによってブラウザをクロスプラットフォームのゲーム実行環境として本格的に使っていけそうな気配が出てきました。
そこでフロントエンドweb開発での事実上の標準言語であるJavaScriptを学んでいきたいと思います。
Algebraic data types emulation in JavaScript
https://github.com/yuka-xxx/experimental/blob/main/adt.js
Ci-enのコード記法はsyntax highlitingが無くて読みにくいので、実験コードはGitHubに上げることにします。
Algebraic data typesを模倣する上でpattern matchingによるdestructingが行えないと片手落ちなので、今回はこの部分が一番悩みました。
空のMaybeやListをprototypeに設定しているのは、今後これらをtype class instantiationに利用しようと目論んでいるからで、今回に限れば不要です。