无法将多个参数传递给 kdb 中的每个函数
Unable to pass multiple arguments to each function in kdb
我如何将 2 个变量传递给 lambda 函数,其中 x 是一个数字,y 是一个符号。
我已经写了这个,但它不会处理
{[x;y]
// some calculation with x and y
}
each ((til 5) ,\:/: `a`b`c`d`f)
好像是在抱怨我少了一个arg
这是一个我认为符合您要求的示例:
q){string[x],string y}./: raze (til 5) ,\:/: `a`b`c`d`f
您的示例的问题是您需要清除 ((til 5) ,\:/: `a`b`c`d`f)
的输出以获得 2 个输入的列表。
将变量列表传递给函数是使用“.”完成的。 (点应用)http://code.kx.com/q/ref/unclassified/#apply
.例如
q){x+y} . 10 2
12
在我的示例中,我使用了 "each right" 然后应用于每对。 http://code.kx.com/q/ref/adverbs/#each-right
或者,如果将函数包装在另一个 lamda 中,则可以使用 each 代替
q){{string[x],string y} . x} each raze (til 5) ,\:/: `a`b`c`d`f
而不是使用 cross 或 ",/:\:" 生成参数列表并将其中的 each 传递到您的函数中, 修改你的函数,每左每右 ("/:\:") 给你所有的组合。他应该采用格式;
x f/:\: y
其中 x 和 y 都是列表。重用示例 {string[x],string y};
til[5] {string[x], string y}/:\:`a`b`c`d
这将为您提供 x 和 y 的所有组合的矩阵。如果您想展平该列表,请添加 'raze'
我如何将 2 个变量传递给 lambda 函数,其中 x 是一个数字,y 是一个符号。 我已经写了这个,但它不会处理
{[x;y]
// some calculation with x and y
}
each ((til 5) ,\:/: `a`b`c`d`f)
好像是在抱怨我少了一个arg
这是一个我认为符合您要求的示例:
q){string[x],string y}./: raze (til 5) ,\:/: `a`b`c`d`f
您的示例的问题是您需要清除 ((til 5) ,\:/: `a`b`c`d`f)
的输出以获得 2 个输入的列表。
将变量列表传递给函数是使用“.”完成的。 (点应用)http://code.kx.com/q/ref/unclassified/#apply .例如
q){x+y} . 10 2
12
在我的示例中,我使用了 "each right" 然后应用于每对。 http://code.kx.com/q/ref/adverbs/#each-right
或者,如果将函数包装在另一个 lamda 中,则可以使用 each 代替
q){{string[x],string y} . x} each raze (til 5) ,\:/: `a`b`c`d`f
而不是使用 cross 或 ",/:\:" 生成参数列表并将其中的 each 传递到您的函数中, 修改你的函数,每左每右 ("/:\:") 给你所有的组合。他应该采用格式;
x f/:\: y
其中 x 和 y 都是列表。重用示例 {string[x],string y};
til[5] {string[x], string y}/:\:`a`b`c`d
这将为您提供 x 和 y 的所有组合的矩阵。如果您想展平该列表,请添加 'raze'