[obsidian] vault backup: 2023-08-30 01:13:06
This commit is contained in:
parent
86ad9fdc21
commit
e6c5f36164
6
content/.obsidian/graph.json
vendored
6
content/.obsidian/graph.json
vendored
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"collapse-filter": false,
|
"collapse-filter": false,
|
||||||
"search": "",
|
"search": "",
|
||||||
"showTags": true,
|
"showTags": false,
|
||||||
"showAttachments": false,
|
"showAttachments": false,
|
||||||
"hideUnresolved": true,
|
"hideUnresolved": true,
|
||||||
"showOrphans": true,
|
"showOrphans": true,
|
||||||
@ -14,9 +14,9 @@
|
|||||||
"lineSizeMultiplier": 1,
|
"lineSizeMultiplier": 1,
|
||||||
"collapse-forces": false,
|
"collapse-forces": false,
|
||||||
"centerStrength": 0.677815755208333,
|
"centerStrength": 0.677815755208333,
|
||||||
"repelStrength": 15.52734375,
|
"repelStrength": 16.8867003815101,
|
||||||
"linkStrength": 1,
|
"linkStrength": 1,
|
||||||
"linkDistance": 48,
|
"linkDistance": 48,
|
||||||
"scale": 1.0955205619292947,
|
"scale": 1.0101881773459105,
|
||||||
"close": true
|
"close": true
|
||||||
}
|
}
|
7
content/Extempore.md
Normal file
7
content/Extempore.md
Normal 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
15
content/継時再帰.md
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
#programming-language
|
||||||
|
|
||||||
|
Temporal Recursionとも。
|
||||||
|
|
||||||
|
[[Extempore]](の前身Impromptuで導入された)もの。
|
||||||
|
|
||||||
|
n秒後に自分自身の関数を実行することでリズムとかを作る仕組み
|
||||||
|
|
||||||
|
クロージャなので、一旦ランタイムに現在の環境をキャプチャして逃す必要がある。
|
||||||
|
|
||||||
|
ガベコレなしで実装するのは多分大変
|
||||||
|
|
||||||
|
(継時の再帰が発生する場合はキャプチャした環境をランタイムで管理する以外の方法はないんだよなあ、多分)
|
||||||
|
|
||||||
|
|
@ -15,6 +15,8 @@
|
|||||||
|
|
||||||
## [[mimium]]と[[多段階計算]]
|
## [[mimium]]と[[多段階計算]]
|
||||||
|
|
||||||
|
[[mimium新内部表現の構想]]での検討材料
|
||||||
|
|
||||||
こういうのが計算できなかった(要するにfixpointの中で`self`を使うと必要な`self`のサイズを確定できない)
|
こういうのが計算できなかった(要するにfixpointの中で`self`を使うと必要な`self`のサイズを確定できない)
|
||||||
|
|
||||||
```rust
|
```rust
|
||||||
@ -128,6 +130,7 @@ fn lowpass(input,fb){
|
|||||||
|
|
||||||
ただ、そうするとユーザーからは、「なんだかよくわからんけど再帰する関数の第1引数には上限の決まったIntしか使えんらしい」という不条理感が残る
|
ただ、そうするとユーザーからは、「なんだかよくわからんけど再帰する関数の第1引数には上限の決まったIntしか使えんらしい」という不条理感が残る
|
||||||
|
|
||||||
|
こっちは筋が悪いかなー
|
||||||
### これら2つではカバーできないケース
|
### これら2つではカバーできないケース
|
||||||
|
|
||||||
再帰の深さによって返したい型が変わるような多相を考えると厳しいかも。
|
再帰の深さによって返したい型が変わるような多相を考えると厳しいかも。
|
||||||
@ -139,3 +142,16 @@ fn lowpass(input,fb){
|
|||||||
項でインデックスされた型=依存型な気がするのよな
|
項でインデックスされた型=依存型な気がするのよな
|
||||||
|
|
||||||
[[多段階計算#依存型との組み合わせ]]
|
[[多段階計算#依存型との組み合わせ]]
|
||||||
|
|
||||||
|
どのみち、拡張していくとしたら
|
||||||
|
|
||||||
|
1. 現状のmimiumのシンタックスのまま再帰とfeedを混ぜてもコンパイル通せるように頑張る
|
||||||
|
2. 多段階計算導入
|
||||||
|
3. 依存型導入?
|
||||||
|
|
||||||
|
という順番になると思うので、どのみち一旦Rustでのmimiumコンパイラをシンプルに作りに行けばそれでいいのではないか?後から拡張するということで
|
||||||
|
|
||||||
|
[[継時再帰]]の方をどう定義するか&feedの項とどう使い分けるのかの問題はまだ残されているが…
|
||||||
|
|
||||||
|
継時再帰は[[Kronos]]のMeta-Sequencerでも使われてたはずだし、きちんと意味論を定義することはできるのかな?
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user