3

J の数値のデジタル合計を計算する関数を次に示します。

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

b.この動詞のランクを照会するために使用すると_ 1 _、無限、つまり無限が得られます。( は 2 項ではないので、2 項のケースは無視できdigitalSumます。)

で報告されているように、この動詞の単項ランクを 0 にしたいと思いb.ます。これを行うために私が知っている唯一の方法は、「シム」を使用することです。

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

これはうまく機能しますが、これが唯一の方法なのか、それとも他に何か不足しているのか知りたいです。

明確化

このように定義された動詞のランクを変更する方法を発見しました:

桁数 =: 3 : 0 "0
    "."0@": y
)

"0宣言後の に注意してください3 : 0。任意の副詞または接続詞を入れることができ、動詞全体に適用されます。かなりクールなもの!

4

1 に答える 1

2

digitalSum =: (+/@:("."0)@":)"0私もそれを定義する方法です。を使用"してランクを変更するのは非常に標準的で、括弧で囲まれた暗黙の列車で機能します。

于 2010-06-02T22:39:25.623 に答える