[obsidian] vault backup: 2025-08-13 02:55:43[
All checks were successful
Build / build (push) Successful in 8m9s
All checks were successful
Build / build (push) Successful in 8m9s
This commit is contained in:
@@ -13,16 +13,24 @@ date: 2025-07-02 11:40
|
||||
|
||||
## 基本構文
|
||||
|
||||
構文のベースは [Elm](https://elm-lang.org/docs/records) である。小竹は Rust 風にはしない。
|
||||
構文のベースは [Elm](https://elm-lang.org/docs/records) である。この部分だけは Rust 風にはしない。
|
||||
|
||||
匿名レコード型を正の文脈で使う。
|
||||
|
||||
|
||||
```rust
|
||||
let myadsr_param = { attack = 100.0, decay = 200.0, sustain:float = 0.6, // let 式同様に型注釈は省略可能だ release = 2000.0, // 末尾のカンマも許可されるべきだ } let singlerecord = { value = 100, // フィールドが1つだけのレコードは、ブロックや代入構文と区別するために末尾カンマが必須だ }
|
||||
let myadsr_param = {
|
||||
attack = 100.0,
|
||||
decay = 200.0,
|
||||
sustain:float = 0.6, // let 式同様に型注釈は省略可能だ
|
||||
release = 2000.0, // 末尾のカンマも許可されるべきだ
|
||||
}
|
||||
let singlerecord = {
|
||||
value = 100, // フィールドが1つだけのレコードは、ブロックや代入構文と区別するために末尾カンマが必須だ
|
||||
}
|
||||
```
|
||||
|
||||
後で実装予定だが、型エイリアス/新規型宣言の中でもデフォルト値を設定できる。宣言内のデフォルト値はリテラルである必要がある。
|
||||
後で実装予定だが、型エイリアス/新規型宣言の中でもデフォルト値を設定できる。宣言内のデフォルト値はリテラルである必要がある(のか?)。
|
||||
|
||||
|
||||
```rust
|
||||
@@ -50,7 +58,8 @@ Elm 由来の「update」構文も加える。ただし区切りにはパイプ
|
||||
|
||||
|
||||
```rust
|
||||
let newadsr = { myadsr_param <- attack = 4000.0, decay = 2000.0 } // attack フィールドのみ上書きして新しいレコードを生成
|
||||
let newadsr = { myadsr_param <- attack = 4000.0, decay = 2000.0 }
|
||||
// attack,decay フィールドのみ上書きして新しいレコードを生成
|
||||
```
|
||||
|
||||
これは以下のような構文糖衣として実装できる。
|
||||
|
Reference in New Issue
Block a user