Domanda

Di solito, userò il :: primitiva così:

SomeVariable"_ :: ] DefaultValue

Sto cercando un modo per avvolgere quel brutto SOB. Sto cercando di ragionare. Normalmente, sarebbe una definizione tacita. Questo, per esempio:

default =: 13 : 'x"_ :: ] y'

fallisce miseramente. Perché, naturalmente, in questo contesto:

SomeVariable default DefaultValue

se SomeVariable non esiste, J getterà un errore di valenza.

Quindi, come si può avvolgere ::?

È stato utile?

Soluzione

Si può infatti avvolgere ::, ma se si vuole dare un argomento verb, è necessario affrontare le questioni sintattiche.

Ad esempio, è possibile utilizzare un avverbio:

fault=:1 :0
  u"_ :: ]
)

In alternativa si potrebbe convertire il verbo che si stanno manipolando in un gerundio e passare che in (ma sarebbe brutto, quindi non credo che si desidera).

Altri suggerimenti

Io uso,

ORdef_z_ =: ".@[^:(_1< 4!:0@<@[)

 'asd' ORdef 3  NB. asd not assigned, returns right.
3
 asd =. 'asd' ORdef 3
asd=.'asd' ORdef 22  NB. will return 3 due to previous assignment
asd

3

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top