为什么两个相似的 J 动词短语起作用,但其中只有一个与动态力量连词一起起作用?
Why do two similar J verb phrases work, but only one of them works with the dynamic power conjunction?
动词链 ''-:]
的工作方式符合我的预期。
(''-:])''
1
(''-:])'non-empty'
0
它也像我期望的那样与动态功率结合一起工作。
'empty'[^:(''-:])''
empty
'empty'[^:(''-:])'non-empty'
non-empty
动词短语 ''&-:
产生了与我预期相同的结果。
(''&-:)''
1
(''&-:)'non-empty'
0
当我尝试将 ''&-:
与动态幂连词一起使用时,J 产生域错误,我不明白为什么。此用例与所有其他用例有何区别?
'empty'[^:(''&-:)''
|domain error
| 'empty' [^:(''&-:)''
'empty'[^:(''&-:)'non-empty'
|domain error
| 'empty' [^:(''&-:)'non-empty'
"domain error" 行下方的消息是否试图告诉我任何具体信息?
我的实际用例是用另一个字符串替换空字符串。如果有人对更好的方法有任何建议,我将不胜感激。
好问题,让我深入研究了我的 Nuvoc 参考文献 (^:)
Power Conjunction https://code.jsoftware.com/wiki/Vocabulary/hatco#Common_Uses_2
我指的是 Nuvoc,因为现在正在使用它来代替 J 词汇表。
据我所知,问题是你有一个二元函数(你的参数是 'empty'
和 ''
)并且你试图在你的测试中强制它成为单子函数 (''&-:)
'empty'[^:(''&-:) ''
|domain error
| 'empty' [^:(''&-:)''
当您没有正确数量的参数,或者您使用的参数类型不合适时,通常会出现域错误。
如果我们将您的测试更改为分叉 ('' -: ])
它会起作用,因为现在 x 和 y 参数得到了适当的处理。 ]
选择 y 参数,左边尖齿上的名词不需要参数。
'empty'[^:(''-:]) '' NB. turn the test into a fork
empty
另一种可行的方法是使用 "_
将 x 参数更改为动词,这会创建一个无限级别的动词,并且在调用时将 return 得到您期望的结果。这再次消除了二元单子混淆的问题,因此您的原始测试现在可以工作了。 empty"_
两边的括号需要将幂连词 ^:
与动词分开。
('empty'"_) ^:(''&-:) '' NB. turn the x argument into a verb
empty
您可能采取的其他方法是查看 Amend 副词 }
https://code.jsoftware.com/wiki/Vocabulary/curlyrt#dyadic
动词链 ''-:]
的工作方式符合我的预期。
(''-:])''
1
(''-:])'non-empty'
0
它也像我期望的那样与动态功率结合一起工作。
'empty'[^:(''-:])''
empty
'empty'[^:(''-:])'non-empty'
non-empty
动词短语 ''&-:
产生了与我预期相同的结果。
(''&-:)''
1
(''&-:)'non-empty'
0
当我尝试将 ''&-:
与动态幂连词一起使用时,J 产生域错误,我不明白为什么。此用例与所有其他用例有何区别?
'empty'[^:(''&-:)''
|domain error
| 'empty' [^:(''&-:)''
'empty'[^:(''&-:)'non-empty'
|domain error
| 'empty' [^:(''&-:)'non-empty'
"domain error" 行下方的消息是否试图告诉我任何具体信息?
我的实际用例是用另一个字符串替换空字符串。如果有人对更好的方法有任何建议,我将不胜感激。
好问题,让我深入研究了我的 Nuvoc 参考文献 (^:)
Power Conjunction https://code.jsoftware.com/wiki/Vocabulary/hatco#Common_Uses_2
我指的是 Nuvoc,因为现在正在使用它来代替 J 词汇表。
据我所知,问题是你有一个二元函数(你的参数是 'empty'
和 ''
)并且你试图在你的测试中强制它成为单子函数 (''&-:)
'empty'[^:(''&-:) ''
|domain error
| 'empty' [^:(''&-:)''
当您没有正确数量的参数,或者您使用的参数类型不合适时,通常会出现域错误。
如果我们将您的测试更改为分叉 ('' -: ])
它会起作用,因为现在 x 和 y 参数得到了适当的处理。 ]
选择 y 参数,左边尖齿上的名词不需要参数。
'empty'[^:(''-:]) '' NB. turn the test into a fork
empty
另一种可行的方法是使用 "_
将 x 参数更改为动词,这会创建一个无限级别的动词,并且在调用时将 return 得到您期望的结果。这再次消除了二元单子混淆的问题,因此您的原始测试现在可以工作了。 empty"_
两边的括号需要将幂连词 ^:
与动词分开。
('empty'"_) ^:(''&-:) '' NB. turn the x argument into a verb
empty
您可能采取的其他方法是查看 Amend 副词 }
https://code.jsoftware.com/wiki/Vocabulary/curlyrt#dyadic