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 ::
?
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