generated at
2/15/2025, 7:30:40 PM
二項演算
2つの変数の各定義域と値域が同じ
函数
のこと
\mu:A\times A\to A
入力と出力が同じ型じゃないといけないのか。
てことは任意の二項演算(・)に対して (A・B)・(C・D) が計算可能なわけだ
そうじゃなくても二項演算と呼ぶ場合もあるらしい
二項演算#外部二項演算 - Wikipedia
入力と出力が違う型になる例には、
==
とかある
2 == 3
→
False
これは
\mu:式\times 式\to 式
と解釈できる
集合に、
二項演算
と
単位元
を入れると
monoid
になる
群とかよりいくらか一般的なやつ
例
集合
二項演算
単位元
連結できる!
String
<>
""
"ho" <> "ge" <> "piyo" (== "hogepiyo")
Int
*
1
1*2*3
Int
+
0
1+2+3
List
++
[]
`[1,2,3] ++ [3,4,5] ++ [6]`
補足
<>
は、Haskellの文字列結合。
JSなら
.concat()
とか
+
とか
これを見ると、入力と出力が同じな感じもなんとなくわかる
なるほど、
入れ子
にできるという特徴があるんですね
入力と出力が同じ型の函数を特別視するのも納得がいく
集合が
Int
で、二項演算が
==
だとモノイドにはならない