在J中设置用户定义动词的等级

时间:2010-06-02 22:21:07

标签: tacit-programming j

这是一个计算J中数字的数字和的函数:

digitalSum =: +/@:("."0)@":

如果我使用b.来查询此动词的等级,我会得到_ 1 _,即无限。 (我们可以忽略二元情形,因为digitalSum不是二元的。)

我希望这个动词的monadic等级为0,如b.所报告的那样。我知道这样做的唯一方法是使用“垫片”,例如,

ds =: +/@:("."0)@":
digitalSum =: ds"0

这很有效,但我想知道这是否是唯一的方法,或者是否还有其他我想念的东西。

澄清

我刚刚发现了如何改变由此定义的动词的等级:

digits =: 3 : 0 "0
    "."0@": y
)

在声明"0后注意3 : 0。你可以放任何你想要的副词或连词,它将作为一个整体应用于动词。很酷的东西!

1 个答案:

答案 0 :(得分:1)

digitalSum =: (+/@:("."0)@":)"0也是我定义它的方式。使用"来改变排名是非常标准的,适用于带括号的默认列车。