回答編集履歴
1
表現訂正
answer
CHANGED
@@ -32,7 +32,7 @@
|
|
32
32
|
bindingB: (T, A) -> B, // (※1)
|
33
33
|
block: (T, A, B) -> R): R
|
34
34
|
```
|
35
|
-
任意の多重度に対してvarargなどを用いて単一の関数定義でできたらいいのですが、AやBのそれぞれの型を
|
35
|
+
任意の多重度に対してvarargなどを用いて単一の関数定義でできたらいいのですが、どうしてもAやBのそれぞれの型を特定できないと使い物にならないため(自分がわかる限りでは)束縛すべき変数の数に応じたuseの定義を別個に用意しないといけない気がしました。
|
36
36
|
|
37
37
|
※1: ここは`(T) -> B`あるいは`(A) -> B`でもいいんじゃないかという話があるかも知れません。そうしたい場合は(T)->Bと(A)->B用にそれぞれオーバーロード定義をすればいいのかも知れませんが、下手にやると場合によってオーバーロードが解決できない(呼び出しの仕方によってはどちらのオーバーロード定義を用いるべきか曖昧になる)おそれがなきにしも有らずと思います。
|
38
38
|
|