Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kdb 如何转换;“各有所爱”;变成一种功能形式?_Kdb - Fatal编程技术网

Kdb 如何转换;“各有所爱”;变成一种功能形式?

Kdb 如何转换;“各有所爱”;变成一种功能形式?,kdb,Kdb,假设我有一个数据类型为字符数组的表列。我想传入一个函数select where子句,其中列位于给定字符串的列表中。然而,由于种种原因,我不能简单地使用(in;`col;myList)。相反,我需要做的是: max col like/: myList 这实际上给出了相同的结果。然而,我试着把它放在函数形式中 (max; (like/:; `col; myList)) 我得到一个类型错误。关于如何实现这一点有什么想法吗?应该是:(max;(/:;like);`col;`mylist))处理这个问

假设我有一个数据类型为字符数组的表列。我想传入一个函数select where子句,其中列位于给定字符串的列表中。然而,由于种种原因,我不能简单地使用
(in;`col;myList)
。相反,我需要做的是:

max col like/: myList
这实际上给出了相同的结果。然而,我试着把它放在函数形式中

(max; (like/:; `col; myList))

我得到一个类型错误。关于如何实现这一点有什么想法吗?

应该是:
(max;(/:;like);`col;`mylist))
处理这个问题的一个好方法是对要功能化的select语句的字符串使用
解析。例如:

q)parse"select from t where max col like/: myList"
?
`t
,,(max;((/:;like);`col;`myList))
0b
()
或者特别是在您的情况下,您需要结果列表的第三个元素(where子句):

我甚至认为在实际代码中使用此模式可能是一个好主意,因为像
max((/:;like);`col;`myList)
这样的功能化语句很快就会变得不可读

希望有帮助

q)parse"select from t where max col like/: myList"
?
`t
,,(max;((/:;like);`col;`myList))
0b
()
q)(parse"select from t where max col like/: myList")2
max ((/:;like);`col;`myList)