在 k 中应用投影和单子函数
Applying of projections and monadic functions in k
如何在 k 中正确应用单子函数和投影?
KDB+ 3.6 2018.05.17 Copyright (C) 1993-2018 Kx Systems
q) \
(5*;10*)@\:2
10 20
({x};{x*x})@\:2
2 4
(#;#)@\:2
(#[2];#[2])
为什么第一个示例 2 个正常工作而最后一个不正常?我以为会是:
(#;#)@\:2
1 1
但它给了我一个奇怪的结果。
知道了!
q)\
(#;#)@\:2
(#[2];#[2])
(#:;#:)@\:2
1 1
为了完整起见,这与此处记录的一元形式有关:https://code.kx.com/q/basics/exposed-infrastructure/#unary-forms
# (take) 是二元函数,不像 count 是一元函数。这就是为什么你只对它应用一个参数时得到一个投影。
q)count
#:
q)type (count)
101h
q)type (#)
102h
您可以使用 . (dot-apply) 双元函数运算符,带有两个操作数 return 不是投影的结果。
(#;#) .\: (3;til 10)
0 1 2
0 1 2
如何在 k 中正确应用单子函数和投影?
KDB+ 3.6 2018.05.17 Copyright (C) 1993-2018 Kx Systems
q) \
(5*;10*)@\:2
10 20
({x};{x*x})@\:2
2 4
(#;#)@\:2
(#[2];#[2])
为什么第一个示例 2 个正常工作而最后一个不正常?我以为会是:
(#;#)@\:2
1 1
但它给了我一个奇怪的结果。
知道了!
q)\
(#;#)@\:2
(#[2];#[2])
(#:;#:)@\:2
1 1
为了完整起见,这与此处记录的一元形式有关:https://code.kx.com/q/basics/exposed-infrastructure/#unary-forms
# (take) 是二元函数,不像 count 是一元函数。这就是为什么你只对它应用一个参数时得到一个投影。
q)count
#:
q)type (count)
101h
q)type (#)
102h
您可以使用 . (dot-apply) 双元函数运算符,带有两个操作数 return 不是投影的结果。
(#;#) .\: (3;til 10)
0 1 2
0 1 2