[英]Write 4 : 'x&{.&.;: y' tacitly
Conor Hoekstra 最近在 APL https://youtu.be/QtvvQ7MdwKY中解決了一個 Leetcode 問題,問題是從字符串y
中取出前x
單詞
在 J 中,使用&.
(Under) and ;:
(Words) 我可以想出一個很好的明確的單線
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'
有一個相當默契的解決方案嗎?
使用半對偶(由 J902 或 J903 引入?)您可以編寫4 {.&.(a:`;:) s
。 然后;:
僅適用於正確的參數,而稍后仍會進行相反的操作。 u&.(f`a:)
將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
是默認的動詞。
我不認為你可以把它寫成一個默認動詞,但它很容易作為一個默認副詞: ]:&{.&.;:
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.