[obsidian] vault backup: 2023-08-30 01:13:06

This commit is contained in:
Tomoya Matsuura(MacBookPro) 2023-08-30 01:13:06 +09:00
parent 674d5a2666
commit 21fdda404c
4 changed files with 41 additions and 3 deletions

View File

@ -1,7 +1,7 @@
{
"collapse-filter": false,
"search": "",
"showTags": true,
"showTags": false,
"showAttachments": false,
"hideUnresolved": true,
"showOrphans": true,
@ -14,9 +14,9 @@
"lineSizeMultiplier": 1,
"collapse-forces": false,
"centerStrength": 0.677815755208333,
"repelStrength": 15.52734375,
"repelStrength": 16.8867003815101,
"linkStrength": 1,
"linkDistance": 48,
"scale": 1.0955205619292947,
"scale": 1.0101881773459105,
"close": true
}

7
content/Extempore.md Normal file
View File

@ -0,0 +1,7 @@
#programming-language #sound
Andrew Sorensenが作ったLispライブプログラミング環境。
Schemeと、Scheme上で実装されたDSLのxtlangの2つの言語を使う。
xtlangは静的型付けを要求する言語で、LLVMでJITコンパイルしてリアルタイムDSPができたりする。

15
content/継時再帰.md Normal file
View File

@ -0,0 +1,15 @@
#programming-language
Temporal Recursionとも。
[[Extempore]](の前身Impromptuで導入された)もの。
n秒後に自分自身の関数を実行することでリズムとかを作る仕組み
クロージャなので、一旦ランタイムに現在の環境をキャプチャして逃す必要がある。
ガベコレなしで実装するのは多分大変
(継時の再帰が発生する場合はキャプチャした環境をランタイムで管理する以外の方法はないんだよなあ、多分)

View File

@ -15,6 +15,8 @@
## [[mimium]]と[[多段階計算]]
[[mimium新内部表現の構想]]での検討材料
こういうのが計算できなかった(要するにfixpointの中で`self`を使うと必要な`self`のサイズを確定できない)
```rust
@ -128,6 +130,7 @@ fn lowpass(input,fb){
ただ、そうするとユーザーからは、「なんだかよくわからんけど再帰する関数の第1引数には上限の決まったIntしか使えんらしい」という不条理感が残る
こっちは筋が悪いかなー
### これら2つではカバーできないケース
再帰の深さによって返したい型が変わるような多相を考えると厳しいかも。
@ -139,3 +142,16 @@ fn lowpass(input,fb){
項でインデックスされた型=依存型な気がするのよな
[[多段階計算#依存型との組み合わせ]] 
どのみち、拡張していくとしたら
1. 現状のmimiumのシンタックスのまま再帰とfeedを混ぜてもコンパイル通せるように頑張る
2. 多段階計算導入
3. 依存型導入?
という順番になると思うので、どのみち一旦Rustでのmimiumコンパイラをシンプルに作りに行けばそれでいいのではないか後から拡張するということで
[[継時再帰]]の方をどう定義するか&feedの項とどう使い分けるのかの問題はまだ残されているが…
継時再帰は[[Kronos]]のMeta-Sequencerでも使われてたはずだし、きちんと意味論を定義することはできるのかな