Conor Hoekstra 最近解决了 APL 中的 Leetcode 问题 https://youtu.be/QtvvQ7MdwKY 问题是从字符串中取出前
x
个单词 y
在 J 中,使用
&.
(下)和 ;:
(文字)我可以想出一个很好的明确的单行代码
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'
?
f
绑定到
。 如果创建带有输入的动词是关键,那么您不应该使用副词吗?x
{.
solve =: 1 : 'm&{.&.;:'
4 solve
4&{.&.;:
(4 solve ,: 2 solve) 'Hello how are you Contestant'
Hello how are you
Hello how
本身不是默会(或动词),但
solve
是默会动词。4 solve
。
:;!"*!?"""
这是否意味着我不知道的事情? 我非常需要,不知道还能去哪里