默认写 4 : 'x&{.&.;: y'
Write 4 : 'x&{.&.;: y' tacitly
Conor Hoekstra 最近解决了 APL 中的 Leetcode 问题 https://youtu.be/QtvvQ7MdwKY 问题是从字符串中取出前 x
个单词 y
在 J 中,使用 &.
(Under)和 ;:
(Words)我可以想出一个很好的明确的 one liner
solve =. 4 : 'x&{.&.;: y' NB. Box words in y -> take first x-> unbox words in result while retaining spaces between
s=. 'Hello how are you Contestant'
4 solve s
Hello how are you
我遇到的麻烦是找到仍然包含 &.
的默认版本,主要是因为我认为 x
需要在创建动词期间绑定到 {.
。
这也是魔术 13 :
转换没有帮助的示例
13 : 'x&{.&.;: y'
4 : 'x&{.&.;: y'
我可以默认用;:^:_1
创建;:
的逆来解决
solve2=. (;:^:_1)@:({. ;:)
4 solve2 s
Hello how are you
但这并不像 4 : 'x&{.&.;: y'
的默认版本那么漂亮。
任何人都有 4 : 'x&{.&.;: y'
?
的默认解决方案
mainly because I believe x
needs to be bound to {.
during the creation of the verb.
如果用输入创建动词是关键,难道不应该使用副词吗?
solve =: 1 : 'm&{.&.;:'
4 solve
4&{.&.;:
(4 solve ,: 2 solve) 'Hello how are you Contestant'
Hello how are you
Hello how
solve
本身不是默认的(或动词),但 4 solve
是默认的动词。
用semiduals(是用J902还是J903引入的?)可以写成4 {.&.(a:`;:) s
。然后 ;:
仅应用于正确的论点,而稍后仍会执行相反的操作。 u&.(f`a:)
将仅在左侧参数上应用 f
。
我不认为你可以把它写成默认动词,但它很容易写成默认副词:]:&{.&.;:
.
Conor Hoekstra 最近解决了 APL 中的 Leetcode 问题 https://youtu.be/QtvvQ7MdwKY 问题是从字符串中取出前 x
个单词 y
在 J 中,使用 &.
(Under)和 ;:
(Words)我可以想出一个很好的明确的 one liner
solve =. 4 : 'x&{.&.;: y' NB. Box words in y -> take first x-> unbox words in result while retaining spaces between
s=. 'Hello how are you Contestant'
4 solve s
Hello how are you
我遇到的麻烦是找到仍然包含 &.
的默认版本,主要是因为我认为 x
需要在创建动词期间绑定到 {.
。
这也是魔术 13 :
转换没有帮助的示例
13 : 'x&{.&.;: y'
4 : 'x&{.&.;: y'
我可以默认用;:^:_1
创建;:
solve2=. (;:^:_1)@:({. ;:)
4 solve2 s
Hello how are you
但这并不像 4 : 'x&{.&.;: y'
的默认版本那么漂亮。
任何人都有 4 : 'x&{.&.;: y'
?
mainly because I believe
x
needs to be bound to{.
during the creation of the verb.
如果用输入创建动词是关键,难道不应该使用副词吗?
solve =: 1 : 'm&{.&.;:'
4 solve
4&{.&.;:
(4 solve ,: 2 solve) 'Hello how are you Contestant'
Hello how are you
Hello how
solve
本身不是默认的(或动词),但 4 solve
是默认的动词。
用semiduals(是用J902还是J903引入的?)可以写成4 {.&.(a:`;:) s
。然后 ;:
仅应用于正确的论点,而稍后仍会执行相反的操作。 u&.(f`a:)
将仅在左侧参数上应用 f
。
我不认为你可以把它写成默认动词,但它很容易写成默认副词:]:&{.&.;:
.