次の J 式があるとします。
# 3 ((|=0:)#]) 1+i.1000
これは、3 で割り切れる 1 から 1000 までの数字の数を数えます。
次のように、これに対してモナド関数を定義するとしましょう。
f =: モナドの定義 # y ((|=0:)#]) 1+i.1000 )
これは、単一の引数でうまく機能します。
f 4 250
リストを渡すと、長さエラーが発生します。
f 1 2 3 |長さエラー: f
これで、長さエラーが発生する理由が完全にわかりました。モナド1 2 3
の引数をリストに置き換えると、次のようになります。y
# 1 2 3 ((|=0:)#]) 1+i.1000
J について何か知っていれば、長さのエラーが発生する理由は明らかです。ですから、その説明は必要ありません。
リストを渡すとリストが返されるように関数を定義したい。
f 1 2 3 1000 500 333
(a) リストを取得してリストを返すようにこの関数を再定義するか、(b) 副詞やその他の手法を使用して、再定義せずに関数をそのままリストで機能させるにはどうすればよいですか?