github.com/Cj-bc
misskey.io/@Cj_bc_sd
misskey.resonite.love/@Cj_bc_sd
twitter.com/cj_bc_sd
doc.rust-jp.rs/rust-by-exam...
doc.rust-jp.rs/rust-by-exam...
sequence :: (Traversal t, Monad m) => t (m a) -> m (t a)
みたいなやつの Option 用のってないですか?
fn f(v (Option<i32>, Option<&str>)) -> Option<(i32, &str)>
がほしい
sequence :: (Traversal t, Monad m) => t (m a) -> m (t a)
みたいなやつの Option 用のってないですか?
fn f(v (Option<i32>, Option<&str>)) -> Option<(i32, &str)>
がほしい
変数も、「型を宣言する」のではなく「適合する値を絞り込んでいく」ことで値を決定するので、例えばタプルの1つ目の値を束縛する関数fst(使用例が一枚目)の実装がこう(2枚目)なる。
つまり、fst関数自体は「xは引数に渡されたタプルの1つ目の要素」という制約を付けてxを返しているだけ。ここから先は完全に自分の理解になるけど、これによって
変数も、「型を宣言する」のではなく「適合する値を絞り込んでいく」ことで値を決定するので、例えばタプルの1つ目の値を束縛する関数fst(使用例が一枚目)の実装がこう(2枚目)なる。
つまり、fst関数自体は「xは引数に渡されたタプルの1つ目の要素」という制約を付けてxを返しているだけ。ここから先は完全に自分の理解になるけど、これによって