在 J 编程中定义一个动词摄氏度

Define a verb Centigrade in J programming

在定义动词centigrade将其参数从华氏度转换为摄氏度时,书'J Primer'中的代码是:

   centigrade =. 3 : 0
t1 =. y. - 32
t2 =. t1 * 5
t3 =. t2 % 9
)

然而,我在 'y.' 部分有拼写错误。 但是当我在定义中键入 'y' 而不是 'y.' 时,它就起作用了。

   centigrade =. 3 : 0
t1 =. y - 32
t2 =. t1 * 5
t3 =. t2 % 9
)

这是为什么?谢谢!

最初,J 语言使用 x.y. 作为显式动词的内部参数。如果您想使用外连词 9!:49

来使用遗留代码,您可以重置以允许 y.x.

9!:49 [ 0 表示不接受 y. 9!:49 [ 1 表示接受 y. 9!:48 '' 给出标志的当前状态。 http://www.jsoftware.com/help/dictionary/dx009.htm(页面底部)

   test=: 3 : 'x. + y.'
|spelling error
|   x. + y.
|   ^
|   test=:3     :'x. + y.'
   9!:49 [ 1

   test=: 3 : 'x. + y.'
   9!:49 [ 0

   test=: 3 : 'x. + y.'
|spelling error
|   x. + y.
|   ^
|   test=:3     :'x. + y.'