質問するログイン新規登録

回答編集履歴

1

表現訂正

2018/04/06 02:36

投稿

KSwordOfHaste
KSwordOfHaste

スコア18404

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