From b409e874d8b351ca5fdbe9713a55c0d77e142844 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=BE=E6=B5=A6=20=E7=9F=A5=E4=B9=9F=20Matsuura=20Tomoy?= =?UTF-8?q?a?= Date: Wed, 30 Oct 2024 16:07:08 +0900 Subject: [PATCH] [obsidian] vault backup: 2024-10-30 16:07:08[ --- content/mimiumでMIDIインプットを実装.md | 27 +++++++++++++++++++++++++ content/private | 2 +- 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 content/mimiumでMIDIインプットを実装.md diff --git a/content/mimiumでMIDIインプットを実装.md b/content/mimiumでMIDIインプットを実装.md new file mode 100644 index 00000000..b60fba39 --- /dev/null +++ b/content/mimiumでMIDIインプットを実装.md @@ -0,0 +1,27 @@ +--- +date: 2024-10-30 15:42 +--- +#mimium + +IOの順序保証とか考える + +正格評価だとIOモナドとかはそもそも考える必要がない + +[Algebraic Effects入門](https://v2.aintek.xyz/posts/introduction-to-algebraic-effects) + +> `type 'a io = unit -> 'a` +> 純粋な値は以下のようなIOモナドにリフトできる。 +> `let return x = fun () -> x` +> 計算はバインド演算子によってつなげることができる。 +> `let (>>=) c1 c2 = fun () -> c2 (c1 ())` + +mimiumだとバインド演算子ってこうか(ジェネリクスが必要だけども) + +```rust +fn bind(f1,f2){ + | | f1() |> f2 +} +``` + + + diff --git a/content/private b/content/private index 1f600c94..290bc582 160000 --- a/content/private +++ b/content/private @@ -1 +1 @@ -Subproject commit 1f600c949a58c854b32f1b5d61ffc6fe4f8bad66 +Subproject commit 290bc582d6210c7181eca8ed60ae467293b9de19