[obsidian] vault backup: 2025-09-24 17:14:37[
All checks were successful
Build / build (push) Successful in 10m20s

This commit is contained in:
2025-09-24 17:14:37 +09:00
parent 7dab373061
commit ea1236e6c2
2 changed files with 29 additions and 24 deletions

View File

@@ -77,51 +77,55 @@ let x = `{1+2} //コード型のシンタックス
${x} //エスケープ/スプライスのシンタックス
//or
$x
```
### 型シグネチャ
```rust
let x : `(float)->float //これは関数型に対する宣言
```
### シンタックスシュガー
ファイル内でステージを変えたブロックを作りたい場合、ブロックがどんどんネストされていって面倒なので
ファイル内でステージを変えたブロックを作りたい場合、ブロックがどんどんネストされていって面倒
あと、mimiumではブロック`${}` の内側に`fn`での関数宣言ができないのもダルい。
```rust
//ステージ1からスタート
stage(-1){
#stage(macro)
//ここはステージ0
let x = {...}
}
//一度ステージ1へ
stage(-1){
//ここはステージ0
#stage(main)
//ここで戻る
let y = (x+...)
}
```
これをこういう形でネストした式へ変形
```rust
//コンパイラはステージ0からスタートするためにCodeを追加
`{
`{//コンパイラはステージ0からスタートするためにCodeを追加
//ステージ1からスタート
${
//ステージ0
${//#stage(macro) start
//ここはステージ0
let x = {...}
`{
//一度ステージ1へ
}
 ${
 //再度ステージ0へ
`{//#stage(main) start
//ここで1に戻る
 let y = (x+...)
 }
 }//#stage(main) end
}
}
}//#stage(macro) end
}// main code end
```
この、最後に閉じ括弧が溜まっていく形にしない限り、yはxを参照できなくなってしまう
ステージは[[mimiumのモジュールシステム|モジュール]]単位で変更していくほうが都合がよさそう。
最終的に、ステージは[[mimiumのモジュールシステム|モジュール]]単位で変更していくほうが都合がよさそう。
とはいえ、簡易的に1ファイル内でステージ0、1の変更もしたいかな