diff --git a/content/mimiumでのバリアント.md b/content/mimiumでのバリアント.md index 9fd52394..58f72b7b 100644 --- a/content/mimiumでのバリアント.md +++ b/content/mimiumでのバリアント.md @@ -7,4 +7,32 @@ date: 2025-07-03 18:34 二重インクルードの問題とかもあるので、先に分割コンパイルの仕組みを整える方がいい? +型の環境の中に変数解決が必要になってくる + +内部的には幽霊、Opaque、バリアントで分かれててもいいかもな + +```rust +enum Variant{ + Phantom(Symbol), + Opaque(Symbol,TypeNodeId), + Union(Box,Box) +} +enum Type{ + ... + + Variant(Variant) +} +``` + +Foldでネストするくらいなら`Vec>`に収められるかな? + +パーサーとASTとしてはmatch節も加えないと意味ない + +で、型推論に加えなきゃいけないコードは、 + +- 型コンストラクタを関数として使えるように型→値環境に追加し、App式の評価で使えるように +- match式の型推論 + +matchのコード生成がジャンプテーブルとか出てくるとめんどくさいんだよなあ + diff --git a/content/mimiumでのライブコーディングエンジン.md b/content/mimiumでのライブコーディングエンジン.md index ed40d235..e7268f08 100644 --- a/content/mimiumでのライブコーディングエンジン.md +++ b/content/mimiumでのライブコーディングエンジン.md @@ -19,3 +19,6 @@ ChucKではエフェクトのテールが更新時にぶちぎれる問題があ 各トラックごとのエフェクトのライブ切り替えとかも実現しようと思えばできるかな +...これ、結局[[SuperCollider]]のJITLibと同じことかもな + +[jitlib\_basic\_concepts\_01 \| SuperCollider 3.14.0-dev Help](https://doc.sccode.org/Tutorials/JITLib/jitlib_basic_concepts_01.html)