gpt4 book ai didi

j - J 中的每个前置副词

转载 作者:行者123 更新时间:2023-12-04 01:34:05 30 4
gpt4 key购买 nike

在 Q/kdb 中,您可以使用 ': 轻松修改动词,它代表每个优先级。它会将动词应用于一个元素及其之前的邻居。例如

=': 检查值对是否相等。在 J 中,您可以轻松折叠 /\ 但它是累积的,是否有成对版本?

最佳答案

\ 有一个 dyadic valence选择特定长度的列表,根据正负长度具有不同的行为:

   2]\i.4
0 1
1 2
2 3
3]\i.4
0 1 2
1 2 3
_2]\i.4
0 1
2 3
_3]\i.4
0 1 2
3 0 0

所以对于比较对:

   n=:1 2 2 2 3 3 1
2]\n
1 2
2 2
2 2
2 3
3 3
3 1
=/"(1) 2]\n
0 1 1 0 1 0
_2]\n
1 2
2 2
3 3
1 0
=/"(1) _2]\n
0 1 1 0

注意最后一对,您还可以旋转列表:

   n ,: n
1 2 2 2 3 3 1
1 2 2 2 3 3 1
(] ,: 1&|.) n
1 2 2 2 3 3 1
2 2 2 3 3 1 1
=/(] ,: 1&|.) n
0 1 1 0 1 0 1

如果您特别希望每个项目都与它的上一个相邻:

   2|.\1 2 3 4
2 1
3 2
4 3

还有 cut 的“子数组”用法:

   2 <;.3 n
┌───┬───┬───┬───┬───┬───┬─┐
│1 2│2 2│2 2│2 3│3 3│3 1│1│
└───┴───┴───┴───┴───┴───┴─┘
2 <;._3 n
┌───┬───┬───┬───┬───┬───┐
│1 2│2 2│2 2│2 3│3 3│3 1│
└───┴───┴───┴───┴───┴───┘
2 =/;._3 n
0 1 1 0 1 0

后来,在学习了一点 Q 之后,each-prior 的这种用法:

q)deltas 10 15 20
10 5 5
q)\
-':10 15 20
10 5 5

在 J 中重复使用 \ 的类似二元用法:

   <\10 15 20
┌──┬─────┬────────┐
│10│10 15│10 15 20│
└──┴─────┴────────┘
2 <\10 15 20
┌─────┬─────┐
│10 15│15 20│
└─────┴─────┘
2 <\0 , 10 15 20
┌────┬─────┬─────┐
│0 10│10 15│15 20│
└────┴─────┴─────┘
2 -~/\0 , 10 15 20
10 5 5
deltas =: 2 -~/\ 0&,
deltas 10 15 20
10 5 5

关于j - J 中的每个前置副词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60176846/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com