在 J 中构建动词数组
Building an array of verbs in J
是否可以构建动词数组?
我试过这个:
f =: >:
f2 =: f f
没有语法错误,但 f2 显然不是动词数组。
例如
f2 yields f f
$ f2 yields $ f2
0 { f2 yields 0 { f2
2 3 $ f behaves in a similar way.
我也想知道动词是否可以被名字激活
已编辑
而不是f2 =: f f
,这是一个组合,让我们有
f =: >:
f2 =: 2 1 $ f
f2 yields 2 1 $ f
$ f2 yields $ f2
0 { f2 yields 0 { f2
似乎f2
表示序列2 1 $ f
,而在原子的情况下,例如2 1 $ 7
,右边是向量
正如评论所指出的,f2=: f f
创建了一个组合,f3=: 2 1 $ f
也创建了一个组合。在 f2
的情况下,您正在定义一个钩子,而在 f3
的情况下,您正在定义一个叉子,当给定一个参数时,它将采用 f
和 [=23] 的结果=] 结果的 2 1
形状。它只是模仿你的输入的原因是 J 显示不带参数的动词的方式。它向您展示了结构,因为它不知道动词将应用于什么。
我想你可能想要的是将动词变成动名词的过程,动名词是动词的名词形式,可以通过多种方式激活。创建动名词是通过在两个动词之间插入反引号或对于单个动词,在动词和空字符串之间插入反引号来完成的。适用于动名词的连词示例有 Agenda 和 Evoke Gerund。
虽然这可以在 J 中完成,但它非常笨拙,因为除了将动词变成动名词外,J 没有 meta-operators 将动词当作名词来操作所必需的。
函数集合在 J 中称为 gerund
并使用勾号“`”构成:
g =: +`-`f
┌─┬─┬─┐
│+│-│f│
└─┴─┴─┘
您可以使用 @.
通过其索引来应用适当的动词:
4 2 3 (g @. 0) 1 5 6
5 7 9
4 2 3 (g @. 1) 1 5 6
3 _3 _3
4 2 3 (g @. 2) 1 5 6
1 0 0
NB. defining a 2x2 gerund:
k =: 2 2 $ +`-`*`%
┌─┬─┐
│+│-│
├─┼─┤
│*│%│
└─┴─┘
1 (((<0 0) { k) @. 0) 2
3
1 (((<0 1) { k) @. 0) 2
_1
1 (((<1 0) { k) @. 0) 2
2
1 (((<1 1) { k) @. 0) 2
0.5
索引也可以是依赖于参数或索引列表的新动词。
是否可以构建动词数组? 我试过这个:
f =: >:
f2 =: f f
没有语法错误,但 f2 显然不是动词数组。 例如
f2 yields f f
$ f2 yields $ f2
0 { f2 yields 0 { f2
2 3 $ f behaves in a similar way.
我也想知道动词是否可以被名字激活
已编辑
而不是f2 =: f f
,这是一个组合,让我们有
f =: >:
f2 =: 2 1 $ f
f2 yields 2 1 $ f
$ f2 yields $ f2
0 { f2 yields 0 { f2
似乎f2
表示序列2 1 $ f
,而在原子的情况下,例如2 1 $ 7
,右边是向量
正如评论所指出的,f2=: f f
创建了一个组合,f3=: 2 1 $ f
也创建了一个组合。在 f2
的情况下,您正在定义一个钩子,而在 f3
的情况下,您正在定义一个叉子,当给定一个参数时,它将采用 f
和 [=23] 的结果=] 结果的 2 1
形状。它只是模仿你的输入的原因是 J 显示不带参数的动词的方式。它向您展示了结构,因为它不知道动词将应用于什么。
我想你可能想要的是将动词变成动名词的过程,动名词是动词的名词形式,可以通过多种方式激活。创建动名词是通过在两个动词之间插入反引号或对于单个动词,在动词和空字符串之间插入反引号来完成的。适用于动名词的连词示例有 Agenda 和 Evoke Gerund。
虽然这可以在 J 中完成,但它非常笨拙,因为除了将动词变成动名词外,J 没有 meta-operators 将动词当作名词来操作所必需的。
函数集合在 J 中称为 gerund
并使用勾号“`”构成:
g =: +`-`f
┌─┬─┬─┐
│+│-│f│
└─┴─┴─┘
您可以使用 @.
通过其索引来应用适当的动词:
4 2 3 (g @. 0) 1 5 6
5 7 9
4 2 3 (g @. 1) 1 5 6
3 _3 _3
4 2 3 (g @. 2) 1 5 6
1 0 0
NB. defining a 2x2 gerund:
k =: 2 2 $ +`-`*`%
┌─┬─┐
│+│-│
├─┼─┤
│*│%│
└─┴─┘
1 (((<0 0) { k) @. 0) 2
3
1 (((<0 1) { k) @. 0) 2
_1
1 (((<1 0) { k) @. 0) 2
2
1 (((<1 1) { k) @. 0) 2
0.5
索引也可以是依赖于参数或索引列表的新动词。