※間違いがありそう。あればコメントください。
kxwiki - Adverbs
・adverb
function or verb を引数にとって、別の function or verb を作り出す。
each以外はスペースを空けてはならない。
adverbの引数はadverbの前にあるfunction or verbなので、adverbの後ろはfunction or verbの引数。
つまり、f each args の場合、eachの引数はfで、argsはfの引数になる。
個人的によく使いそうなもの
[eachなど]
each each -
' each both -
\: each left -
/: each right -
[関数fに作用]
f each X - fは1つ以上の引数をとる関数。
fからXのそれぞれに作用する関数を作り出す。
イメージ f[X[0]], f[X[1]],...
X f' Y - fは2つ以上の引数をとる関数。
fからXとYの両方にそれぞれ作用する関数を作り出す。
イメージ f[X[0];Y[0]], f[X[1];Y[1]],...
X f\: Y - fは2つ以上の引数をとる関数。
fからXのぞれぞれをYに作用させる関数を作り出す。
イメージ f[X[0];Y], f[X[1];Y],...
X f/: Y - fは2つ以上の引数をとる関数。
fからYのぞれぞれをXに作用させる関数を作り出す。
イメージ f[X;Y[0]], f[X;Y[0]],...
[実行例]
q)f:{sum x,y}
q)X: 1 2 3
q)Y: 10 20 30
q)f each X
{sum x,y}'[1 2 3]
q)
q)(f each X) Y
11 22 33
q)X f' Y
11 22 33
q)X f\: Y
61 62 63
q)X f/: Y
16 26 36
q)X f/:\: Y / "X (f/:)\: Y "と同じ, (f/:)を関数と見ればよい
11 21 31
12 22 32
13 23 33
[書き方]
f'[X;Y], f\:[X;Y], f/:[X;Y] とも書ける
q)parse "X f' Y" / parseすれば同じに見える
(';`f)
`X
`Y
q)parse "f'[X;Y]" / parseすれば同じに見える
(';`f)
`X
`Y
・eachを使った関数の応用
TBW, maybe...
0 件のコメント:
コメントを投稿