[obsidian] vault backup: 2025-08-18 16:10:43[
All checks were successful
Build / build (push) Successful in 9m31s
All checks were successful
Build / build (push) Successful in 9m31s
This commit is contained in:
@@ -172,10 +172,10 @@ fn mysynth(freq,amp,gate){
|
|||||||
|
|
||||||
```rust
|
```rust
|
||||||
let param = {
|
let param = {
|
||||||
freq:1000,
|
freq = 1000,
|
||||||
amp:1.0,
|
amp = 1.0,
|
||||||
gate: 1.0,
|
gate = 1.0,
|
||||||
phase: 0.0, //余計なパラメーター
|
phase = 0.0, //余計なパラメーター
|
||||||
}
|
}
|
||||||
param |> mysynth //でも、部分型になるのでOK
|
param |> mysynth //でも、部分型になるのでOK
|
||||||
```
|
```
|
||||||
|
@@ -52,3 +52,37 @@ float?はfloatとNoneいずれも受け入れられる。float?はfloatのサブ
|
|||||||
`float? <: float`
|
`float? <: float`
|
||||||
|
|
||||||
`U' <: U`ならば`{a:T,b:U,c:V}` <: `{a:T,b:U'}`
|
`U' <: U`ならば`{a:T,b:U,c:V}` <: `{a:T,b:U'}`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
でも構造的部分型だと[[mimiumでのIOパラメーター#mimiumの多段階計算 と組み合わせる]]の話とコンフリクトする
|
||||||
|
|
||||||
|
```rust
|
||||||
|
//この場合、aとbだけがuiに現れることになる?
|
||||||
|
fn dsp(){
|
||||||
|
foo(control!({ a = 4.0 , b = 3.0 }))
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
```rust
|
||||||
|
//この場合ならRow Polymorphismになるとかすればいいのか
|
||||||
|
fn dsp(){
|
||||||
|
foo(control!({ a = 4.0 , b = 3.0 .. }))
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
この時、
|
||||||
|
|
||||||
|
- control関数は`forall T. (T)->'T `
|
||||||
|
- 実引数の型`forall r. {a:float,b:float ..r }`(rは列多相のカインド変数)
|
||||||
|
- fooの引数の要求 `{a:float,b:float?,c:float?}`
|
||||||
|
|
||||||
|
これを単一化するとTは`{a:float,b:float,c:float?}`に・・・なる?
|
||||||
|
|
||||||
|
ImcompleteRecordリテラルが実行されてコンストラクタが呼ばれた時どうなるか
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Submodule content/private updated: ce12ada3f0...25e65c1419
Reference in New Issue
Block a user