[obsidian] vault backup: 2025-11-08 11:12:18[
All checks were successful
Build / build (push) Successful in 9m25s
All checks were successful
Build / build (push) Successful in 9m25s
This commit is contained in:
File diff suppressed because one or more lines are too long
8
content/Meshtastic.md
Normal file
8
content/Meshtastic.md
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
date: 2025-11-08 11:10
|
||||||
|
---
|
||||||
|
[Meshtastic](https://meshtastic.org/)
|
||||||
|
|
||||||
|
[[LoRa]]でのメッシュネットワーク構築用のオープンなシステム
|
||||||
|
|
||||||
|
|
||||||
8
content/NYCResistor.md
Normal file
8
content/NYCResistor.md
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
date: 2025-11-08 11:11
|
||||||
|
---
|
||||||
|
#organization
|
||||||
|
|
||||||
|
[NYC Resistor – We learn, share, and make things.](https://www.nycresistor.com/)
|
||||||
|
|
||||||
|
|
||||||
8
content/Signal Rising.md
Normal file
8
content/Signal Rising.md
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
---
|
||||||
|
date: 2025-11-08 11:09
|
||||||
|
---
|
||||||
|
#organization
|
||||||
|
|
||||||
|
[SIGNALS RISING](https://signalsrising.org/)
|
||||||
|
|
||||||
|
|
||||||
@@ -67,8 +67,67 @@ mimiumはコードを専用のVMバイトコードへコンパイルし実行す
|
|||||||
|
|
||||||
### シンタックス
|
### シンタックス
|
||||||
|
|
||||||
|
図nにmimiumの内部表現Lambda-mmmに多段階計算の体系を加えた新しい内部表現 $\lambda_{Mmmm}$(Multi-stage version of $\lambda_{mmm}$)のシンタックスを定義する。
|
||||||
|
|
||||||
|
$$
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$$
|
||||||
|
|
||||||
|
### シンタックスシュガー
|
||||||
|
|
||||||
|
mimiumでは、多段階計算の体系を直感的に扱えるように2つのシンタックスシュガーを導入している。
|
||||||
|
|
||||||
|
1つは、ステージ0でコード辺を返す関数`mymacro`を実行した結果をスプライスでステージ1に埋め込む操作、`$(mymacro(arg))`を、`mymacro!(arg)`と書けるようにするものである。
|
||||||
|
|
||||||
|
もう1つは、変数のスコープを維持したままだとスプライスとクオートの括弧がネストされてしまう問題を回避するために、グローバルスコープに限定し、#stage(macro)/#stage(main)と書くことで、スコープを維持したままその行以下は指定したステージになるというものである。
|
||||||
|
|
||||||
|
### 多段階計算によるメタ操作の実例
|
||||||
|
|
||||||
|
```rust
|
||||||
|
fn cascade(n,gen){
|
||||||
|
let g = gen()
|
||||||
|
if (n>0){
|
||||||
|
let c = cascade(n - 1.0 ,gen)
|
||||||
|
let multiplier = 1.0-(1.0/(n*2.0))
|
||||||
|
|rate| { rate + g(rate/2.0)* 0.5 * rate * multiplier |> c }
|
||||||
|
}else{
|
||||||
|
|rate| g(rate)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fn osc(){
|
||||||
|
...
|
||||||
|
}
|
||||||
|
let myosc = cascade(20, | | osc);
|
||||||
|
fn dsp(){
|
||||||
|
let f = 200
|
||||||
|
let r = f |> myosc
|
||||||
|
(r,r)
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
```rust
|
||||||
|
#stage(macro)
|
||||||
|
fn cascade(n,gen){
|
||||||
|
if (n>0.0){
|
||||||
|
let multiplier = 1.0-(1.0/(n*3)) |> lift_f
|
||||||
|
`{|rate| rate + ($gen)(rate/3)* 0.5 * rate* $multiplier
|
||||||
|
|> $cascade(n - 1.0 ,gen) }
|
||||||
|
}else{
|
||||||
|
`{|rate| ($gen)(rate)}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#stage(main)
|
||||||
|
fn osc(){
|
||||||
|
...
|
||||||
|
}
|
||||||
|
fn dsp(){
|
||||||
|
let f = 200
|
||||||
|
let r = f |> cascade!(20,`osc)
|
||||||
|
(r,r)
|
||||||
|
}
|
||||||
|
```
|
||||||
## コールツリーの解析
|
## コールツリーの解析
|
||||||
|
|
||||||
- クロージャ
|
- クロージャ
|
||||||
|
|||||||
Reference in New Issue
Block a user