返回介绍

Q语言 - 动词和副词(Verb & Adverbs)

发布于 2021-05-31 13:43:27 字数 1718 浏览 1053 评论 0 收藏 0

Kdb +有名词,动词和副词。 所有数据对象和函数都是nounsVerbs通过减少表达式中的方括号和括号的数量来增强可读性。 Adverbs修改二元(2个参数)函数和动词以产生新的相关动词。 副词derived functions称为derived functionsderived verbs

Each

each副词用(`)表示,修改二元函数和动词以应用于列表项而不是列表本身。 看看下面的例子 -

q)1, (2 3 5)      /Join
1 2 3 5
q)1, '( 2 3 4)    /Join each
1 2
1 3
1 4

对于使用关键字“each”的monadic函数,有一种形式。 例如,

q)reverse ( 1 2 3; "abc")           /Reverse
a b c
1 2 3
q)each [reverse] (1 2 3; "abc")     /Reverse-Each
3 2 1
c b a
q)'[reverse] ( 1 2 3; "abc")
3 2 1
c b a

每个左,右 - 右

每个二元函数有两种变体,分别叫做Each-Left (\ :)和Each-Right (/ :)。 以下示例说明了如何使用它们。

q)x: 9 18 27 36
q)y:10 20 30 40
q)x,y           /join
9 18 27 36 10 20 30 40
q)x,'y          /each
9   10
18  20
27  30
36  40
q)x: 9 18 27 36
q)y:10 20 30 40
q)x,y           /join
9 18 27 36 10 20 30 40
q)x,'y          /each, will return a list of pairs
9   10
18  20
27  30
36  40
q)x, \:y        /each left, returns a list of each element
                /from x with all of y
9   10  20  30  40
18  10  20  30  40
27  10  20  30  40
36  10  20  30  40
q)x,/:y         /each right, returns a list of all the x with
                /each element of y
9  18  27  36  10
9  18  27  36  20
9  18  27  36  30
9  18  27  36  40
q)1 _x          /drop the first element
18 27 36
q)-2_y          /drop the last two element
10 20
q)              /Combine each left and each right to be a
                /cross-product (cartesian product)
q)x,/:\:y
9   10  9   20  9   30  9   40
18  10  18  20  18  30  18  40
27  10  27  20  27  30  27  40
36  10  36  20  36  30  36  40

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文