33 lines
1.4 KiB
Markdown
33 lines
1.4 KiB
Markdown
---
|
||
date: 2024-07-23 14:42
|
||
---
|
||
#mimium #memo
|
||
|
||
|
||
本当は関数の呼び出しをグローバル環境で許可するのはだるいのでやりたくないが、利便性を考えると欲しい
|
||
|
||
そうすると、あらゆるグローバルに定義された変数を参照する関数がクロージャになってしまう
|
||
|
||
グローバル環境で確保される変数の領域だけは別扱いにするべき?
|
||
|
||
importとか考え出したらグローバル環境は特別あつかいした方が良さそうだけど、現状では別にいいのか?
|
||
|
||
---
|
||
|
||
## 「弱い正規化」を導入しよう
|
||
|
||
|
||
IFCで発表した操作的意味論では、delayやfeedのステップごとに実行までを定義した。
|
||
|
||
しかし、delayとfeedをそれ以上簡約しない値だと捉えると、ラムダを全部評価すれば正規系として[[Faust]]のSignal APIに変換できる形になる。
|
||
|
||
また、それに加えて入出力で関数をパラメーターに取ったり返却するものだけをあらかじめ簡約すれば、それを命令型に変換した時に可読性をキープすることもできる(Cコードにするとか)
|
||
|
||
VMでクロージャを評価した結果が関数(クロージャのインスタンス)だった場合、それをラムダに戻すことは可能か? upvalueで名前の情報失ってるから無理か
|
||
|
||
|
||
|
||
|
||
|
||
|