包装J的不良原语(::)

时间:2011-01-17 16:11:46

标签: j

通常,我会使用::原语:

SomeVariable"_ :: ] DefaultValue

我正在寻找一种方法来包装那个丑陋的SOB。我试图推理它。通常,它将具有默认的定义。例如:

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

悲惨地失败了。因为,当然,在这种背景下:

SomeVariable default DefaultValue

如果SomeVariable不存在,J将抛出效价错误。

那么,你如何包装::

2 个答案:

答案 0 :(得分:2)

你确实可以包装::但如果你想给它一个动词参数,你需要处理句法问题。

例如,您可以使用副词:

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

或者你可以将你操纵的动词转换为动名词然后传入(但那会很难看,所以我认为你不想这样)。

答案 1 :(得分:0)

我用,

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