参数用法:ti=.{.(*i.)}
Argument Usage: ti=.{.(*i.)}
我正在努力让自己的头脑清醒过来 J
。在 easy-j.pdf
(可用 here;第 19 页)介绍中有这个钩子:
ti=.{.(*i.)}. NB. ti=times index generator
ti 2 5 NB. Usage
我理解上一个词:2(*i.)5 NB. 2 times 0 1 2 3 4
我可以 understand/imagine }.
从参数列表(2 5
以上)中获取最后一个元素来创建 (*i.)5
。但是,是什么让 clear/obvious 以某种方式将参数列表也传递给 {.
以检索 2
(根据我目前的理解,该参数已被 }.
使用)?
希望 J
专家能够理解这个问题。
ti
实际上是一个单分叉,三个尖齿都是动词。执行的方式是两个外部齿 {.
和 }.
在参数 2 5
上执行,结果作为中间齿 [=] 的左右参数馈送16=],它本身就是一个钩子。
在 J 中,fork 操作通常用 f
、g
和 h
表示动词,x
和 y
表示左右参数叉子的评估如下:
(f h g) y <-> (f y) h (g y) NB. <-> is a meta symbol for equivalency - not J symbols
在这种情况下 f y
是 {. 2 5
而 g y
是 }. 2 5
{. 2 5
2
}. 2 5
5
叉子的中间叉齿始终是二叉的,因为它由两个外侧叉齿进料,中间的叉钩 (* i.)
的构造是
x (f g) y <-> x f (g y)
2 (* i.) 5 NB. 2 * (i. 5)
0 2 4 6 8
我正在努力让自己的头脑清醒过来 J
。在 easy-j.pdf
(可用 here;第 19 页)介绍中有这个钩子:
ti=.{.(*i.)}. NB. ti=times index generator
ti 2 5 NB. Usage
我理解上一个词:2(*i.)5 NB. 2 times 0 1 2 3 4
我可以 understand/imagine }.
从参数列表(2 5
以上)中获取最后一个元素来创建 (*i.)5
。但是,是什么让 clear/obvious 以某种方式将参数列表也传递给 {.
以检索 2
(根据我目前的理解,该参数已被 }.
使用)?
希望 J
专家能够理解这个问题。
ti
实际上是一个单分叉,三个尖齿都是动词。执行的方式是两个外部齿 {.
和 }.
在参数 2 5
上执行,结果作为中间齿 [=] 的左右参数馈送16=],它本身就是一个钩子。
在 J 中,fork 操作通常用 f
、g
和 h
表示动词,x
和 y
表示左右参数叉子的评估如下:
(f h g) y <-> (f y) h (g y) NB. <-> is a meta symbol for equivalency - not J symbols
在这种情况下 f y
是 {. 2 5
而 g y
是 }. 2 5
{. 2 5
2
}. 2 5
5
叉子的中间叉齿始终是二叉的,因为它由两个外侧叉齿进料,中间的叉钩 (* i.)
的构造是
x (f g) y <-> x f (g y)
2 (* i.) 5 NB. 2 * (i. 5)
0 2 4 6 8