簡體   English   中英

默寫 4: 'x&{.&.;: y'

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM