ขับไล่ใบหน้าของคิวบ์แบบสมมาตรตามแนว XYZ


33

Sandbox

สำหรับวัตถุประสงค์ของงานปัจจุบันคิวบ์ความยาวของหน่วยจะแสดงในรูปแบบเอียงด้วยสัญลักษณ์ ASCII ดังต่อไปนี้:

  +-----+
 /     /|
+-----+ |
|     | +
|     |/
+-----+
  • + สำหรับจุดยอด
  • -สำหรับขอบ X ความยาวหน่วยตามแนว X แสดงด้วยห้า-ระหว่างสองจุดยอด
  • |สำหรับขอบ Y ความยาวของหน่วยตาม Y จะถูกแทนด้วยสอง|ระหว่างจุดยอดสองจุด
  • /สำหรับขอบ Z ความยาวหน่วยตามแนว Z จะถูกแทนด้วยหนึ่ง/ระหว่างสองจุดยอด
  • จุดยอดจะวาดเฉพาะเมื่อระนาบทั้งสามตัดกัน
  • ขอบจะวาดเฉพาะเมื่อระนาบสองจุดตัดกัน

เมื่อหน้าหน่วยถูกอัดออกมาใบหน้าจะถูกชดเชยด้วยความยาวหน่วยจากตำแหน่งเดิมและสร้างขอบใหม่สี่อันสำหรับแต่ละทิศทาง (บวกและลบ)

คุณสามารถนึกถึงการอัดขึ้นรูปเมื่อวาดแกนของระบบพิกัดคาร์ทีเซียน 3D ที่แต่ละแกนถูกแสดงเป็นลูกบาศก์ที่มีส่วนตัดขวาง 1x1 และความยาวnห่างจาก (0,0,0)

อัดโดย 1 ตาม X:

  +-----------------+
 /                 /|   
+-----------------+ |
|                 | +
|                 |/
+-----------------+

งาน

กำหนดตัวเลขสามตัวสำหรับแกน XYZ ขับไล่ใบหน้าของคิวบ์หน่วยสมมาตรตามจำนวนที่ระบุและแสดงผลลัพธ์ด้วยสัญลักษณ์ ASCII ตามที่ระบุข้างต้น

อินพุต

x, y, z - ตัวเลขที่ไม่เป็นลบ - ความยาวไหลออกมาสำหรับแกนตามลำดับ 0 หมายถึงไม่มีการอัดขึ้นรูป อินพุตสามารถเป็นตัวเลขสามตัวรายการของตัวเลขสามตัวสามตัวสตริงหรืออะไรก็ได้ที่คุณสะดวก

เอาท์พุต

การวาด ASCII ของคิวบ์หลังจากการอัดขึ้นรูป อนุญาตให้นำหน้าและต่อท้ายได้

กรณีทดสอบ

X Y Z
0 0 0

  +-----+
 /     /|
+-----+ |
|     | +
|     |/
+-----+

1 0 0

  +-----------------+
 /                 /|   
+-----------------+ |
|                 | +
|                 |/
+-----------------+


0 0 1   
        +-----+
       /     /|
      /     / |
     /     /  +
    /     /  /
   /     /  /
  +-----+  /
  |     | / 
  |     |/
  +-----+


1 1 0

        +-----+
       /     /|      
      +-----+ |
  +---|     | +-----+
 /    |     |/     /|
+-----+     +-----+ |
|                 | +
|                 |/
+-----+     +-----+
      |     | +
      |     |/
      +-----+

2 0 1

                +-----+
               /     /|
  +-----------+     +-----------+
 /                             /|
+-----------+     +-----------+ |
|          /     /|           | +
|         +-----+ |           |/
+---------|     | +-----------+
          |     |/
          +-----+

1 1 1 

        +-----+
       /     /|-+   
      +-----+ |/|
  +---|     | +-----+
 /    |     |/     /|
+-----+-----+-----+ |
|    /     /|     | +
|   +-----+ |     |/
+---|     | +-----+
    |     |/| +
    +-----+ |/
      +-----+

เกณฑ์การชนะ

ทางออกที่สั้นที่สุดเป็นไบต์ในทุก ๆ ภาษาชนะ โปรดเพิ่มคำอธิบายสั้น ๆ เกี่ยวกับวิธีการที่ใช้และรหัสของคุณ


มีขอบเขตสูงสุดสำหรับการอัดขึ้นรูปแต่ละครั้งหรือไม่
ศูนย์รวมแห่งความไม่รู้

@Embodiment of ไม่รู้ - 9 ควรจะเพียงพอ
Galen Ivanov

คำตอบ:


14

JavaScript (ES6),  525 ... 475 471  459 ไบต์

บันทึกแล้ว 13 ไบต์ขอบคุณ @Neil

[X,Y,Z]จะเข้าเป็นอาร์เรย์ ส่งคืนเมทริกซ์ของอักขระ

a=>([X,Y,Z]=a,m=[],W=X*6+Z*2,'1uol9h824lsqpq17de52u1okgnv21dnjaww111qmhx1gxf4m50xg6pb42kzijq21xyh34t0h2gueq0qznnza2rrimsg3bkrxfh3yrh0em').replace(/.{7}/g,s=>[[c,x,A,y,B,w,C,h,D,t]=parseInt(s,36)+s,Y*W,Z,X,Y|!W,Z*X,X*Y*!Z,X*Z*!Y,Y*Z*!X][c]&&(g=H=>V<h&&((m[r=y-(3-B)*p+(t>1?H-V:V)+Y*3+Z*2]=m[r]||Array(W*2+9).fill` `)[x-2*(3-A)*p+(t>1?V:H-V*t)+W]=` ${c>5?'  + ':t>1?'|-':'-|'}+/+`[(H%~-w?0:+t?4:2)|!(V%~-h)],g(++H<w?H:!++V)))(V=0,p=a[c%3],w-=-3*C*p,h-=-D*p))&&m

ลองออนไลน์!

อย่างไร?

ขั้นตอนการวาด

เอาท์พุทประกอบด้วย 15 ด้านวาดในลำดับที่เฉพาะเจาะจง

ภาพเคลื่อนไหว

การดำเนินงาน

ฟังก์ชั่นการวาดภาพเป็นกรัมก.มันทำงานกับพารามิเตอร์ต่อไปนี้:

  • (x,Y) : ตำแหน่งที่จะเริ่มวาด
  • W : ความกว้าง
  • ชั่วโมง : ความสูง
  • เสื้อ : ประเภทของด้าน

จุดยอดจะถูกวาดเสมอ ขึ้นอยู่กับค่าของพารามิเตอร์อื่นขอบถูกวาดหรือลบ

ถ้าเสื้อ=0ฟังก์ชันจะวาดด้านหน้า:

...........      ...........
..+-----+..      ..+     +..
..|     |..  or  ..       ..
..|     |..      ..       ..
..+-----+..      ..+     +..
...........      ...........

หากเสื้อ=1จะดึงด้านบน:

...........      ...........
...+-----+.      ...+     +.
../     /..  or  ..       ..
.+-----+...      .+     +...
...........      ...........

ถ้า เสื้อ=2

......+....      ......+....
...../|....      .....  ....
....+ |....  or  ....+  ....
....| +....      ....  +....
....|/.....      ....  .....
....+......      ....+......

(x,Y)(W,ชั่วโมง)XYZ

[1..8]

ในการสรุปด้านข้างจะถูกอธิบายด้วย:

{เสื้อx=โอx+ม.x×PY=โอY+ม.Y×PW=โอW+ม.W×Pชั่วโมง=โอชั่วโมง+ม.ชั่วโมง×P

ที่ไหน P

ดังนั้นเราจำเป็นต้องจัดเก็บ 10 พารามิเตอร์ต่อไปนี้สำหรับแต่ละด้าน:

[,โอx,ม.x,โอY,ม.Y,โอW,ม.W,โอชั่วโมง,ม.ชั่วโมง,เสื้อ]

ด้านล่างนี้คือพารามิเตอร์ของ 15 ด้านที่ต้องวาด:

ด้านโอxม.xโอYม.YโอWม.Wโอชั่วโมงม.ชั่วโมงเสื้อ04002-37046014602-346302226-2224034233662040302430-62071240052220-270341632-600712301720-22270400856-2224012294200-370301101002-370130111602-313302126002070400137200070301148602040302

[0..9]

ม.x(ม.x+6)/2ม.Yม.Y+3ม.Wม.W/3

มันส่งผลให้ใน 15 ตัวเลขของทศนิยม 10 หลักซึ่งถูกเก็บไว้เป็น 15 กลุ่ม 7 หลักในฐาน 36

ตัวอย่างเช่นด้านแรกจะถูกเข้ารหัสเป็น 40320704601uol9h8และเก็บไว้เป็น


ฉันคิดว่าArray(W*2+9).fill` ` บันทึกเป็นไบต์
Neil

โอ๊ะขอโทษฉันไม่ดีฉันต้องเห็นว่ามันผิดหรืออะไร ไม่สนใจ
ศูนย์รวมแห่งความไม่รู้

@EmbodimentofIgnorance ไม่ต้องกังวล :)
Arnauld

3
การสร้างภาพที่ยอดเยี่ยมนอกเหนือจากคำอธิบายเด็ด ๆ ของคุณ! เคารพ!
Galen Ivanov

@ GalenIvanov ขอขอบคุณ! ฉันสนุกมากที่ได้ทำงานกับความท้าทายนี้
Arnauld

13

APL (Dyalog Classic) , 162 161 132 130 ไบต์

{' |+/+ +-? ??? ++'[⍉(⊃~∘0)⍤13⍉↑a↑¨⍨↓(--1-⌊/∘,)2-/1⌽↑⍳⍴a←16|29|1+{2⊥+/¨∊¨=⌿¨⍵(⍉⍵)(⍉↓⍵)}⌺2 2 2{⍉⍤2⍉⌽0,⍵}⍣63/↓2/61<⍵+.=⍨↑⍳1+2×⍵]}

ลองออนไลน์!

  • สร้างอาร์เรย์แบบบูล 3 มิติของคิวบ์หน่วย
  • ทำซ้ำแต่ละ cubie 6 3 2 ครั้งพร้อม xyz
  • ล้อมรอบด้วยศูนย์
  • สำหรับแต่ละ 2 × 2 × 2 subarray คำนวณตัวเลขระหว่าง 0 และ 16 ที่กำหนดถ่านเอาท์พุทที่สอดคล้องกัน: (1 + 4*cx + 2*cy + cz) mod 16ที่cx, cy,czเป็นจำนวนเดียวกันค่า "แท่ง" พร้อมแกน X, Y, Z คือเวกเตอร์ตามแกนที่ประกอบด้วย ที่มีค่าเท่ากัน: 0 0 หรือ 1 1. เราสร้างข้อยกเว้นถ้า subarray นั้นเป็นศูนย์ทั้งหมด (หรือ all-one - ที่ไม่สำคัญ) และเราพิจารณาหมายเลข 0 แทน 28
  • สำหรับการคำนวณแต่ละเซลล์โดยที่อักขระที่เกี่ยวข้องควรถูกวาดบนหน้าจอ
  • สำหรับแต่ละเซลล์สร้างเมทริกซ์แบบโปร่งใส (0 เบาะ) ที่มี "พิกเซล" ทึบแสงเพียงหนึ่งเดียว
  • ผสมเมทริกซ์ - ณ จุดนี้เรามีอาร์เรย์ 5d พร้อมมิติ inx, iny, inz, outx, outy
  • ลดสามแกนแรกโดยรักษาเฉพาะรายการที่ไม่โปร่งใส (≠ 0) แรกตามแนวตั้ง
  • ใช้ตารางการค้นหา (สตริง) เพื่อแปลงตัวเลขเป็น -|/+

ขอบคุณ Scott Milner ที่ได้เห็นว่าบางอัน+กลายเป็น?s


คุณทดสอบสิ่งนี้ได้อย่างไร ฉันต้องการลองการอัดขึ้นรูปจำนวน 2,3,4 ตัวอย่าง แต่ดูเหมือนจะไม่มีอะไรชัดเจน
Neil

algo สิ้นเปลืองอย่างมากดังนั้น 2 3 4 หน่วยความจำไม่
เพียงพอ

@Neil ฉันทำแก้ไขเล็ก ๆ และตอนนี้2 3 4งาน สูญเสียไบต์เป็นผลข้างเคียง :)
ngn

วิธีการแก้ปัญหา APL ที่ครึ่งหนึ่งตราบเท่าที่ถ่านบนความท้าทายศิลปะ ASCII ! เกิดอะไรขึ้น?!
Shaggy

3
ไม่แน่ใจ 100% แต่ฉันค่อนข้างแน่ใจว่านี่ไม่ใช่พฤติกรรมที่ต้องการใน0 1 1
Scott Milner

6

ถ่าน , 325 ไบต์

≔×⁶Nθ≔׳Nη≔⊗Nζ¿‹¹№⟦θηζ⟧⁰«B⁺⁷⊗θ⁺⁴⊗η↗↗⊕⊗ζ+⁺⁵⊗θP↙⊗⊕ζ↓+↓⁺²⊗η↙+↙⊕⊗ζ»«F‹⁰θ«↗+↗←+←⊖θ↙+/P→θ↓+↓²+⊖θ+»F‹⁰η«J⁶¦³↗+↗↓+↓⊖η↙+/P↑η←+←⁵↑+↑⊖η+»F‹⁰ζ«J⁸±²↓+↓↓↗+↗⊖ζ↑+↑²P↙ζ←+←⁵↙+↙⊖ζ+»J⁶¦⁰F‹⁰ζ«G↓³↙⊕ζ←⁷↑³↗⊕ζ ↙+↙⊖ζ↓+↓²+→⁵P↗ζ↑+↑²P←⁶↗+↗⊖ζ»F‹⁰η«G←⁶↑⊕η↗³→⁶↓⊕η ↑+↑⊖η←+←⁵↙+/P↓η+⁵P↗²↓+↓⊖η»F‹⁰θ«G↗²→⊕θ↓⁴↙²←⊕θ →+⊖θ↗+/↑+↑²P←θ↙+/P↓³←+←⊖θ»P↗∧∧θη²P↓∧∧ζθ³P←∧∧ηζ⁶+

ลองออนไลน์! การเชื่อมโยงคือการใช้รหัสเวอร์ชันอย่างละเอียด คำอธิบาย:

≔×⁶Nθ≔׳Nη≔⊗Nζ

อินพุตการอัดขึ้นรูป แต่ก่อนหน้าพวกเขาเพื่อบันทึกไบต์

¿‹¹№⟦θηζ⟧⁰«B⁺⁷⊗θ⁺⁴⊗η↗↗⊕⊗ζ+⁺⁵⊗θP↙⊗⊕ζ↓+↓⁺²⊗η↙+↙⊕⊗ζ»«

หากการอัดขึ้นรูปอย่างน้อยสองรายการเป็นศูนย์ให้วาดขนาดลูกบาศก์สองเท่า (2x + 1, 2y + 1, 2z + 1) มิฉะนั้น:

F‹⁰θ«↗+↗←+←⊖θ↙+/P→θ↓+↓²+⊖θ+»

พิมพ์การอัดขึ้นรูปด้านซ้ายถ้ามี

F‹⁰η«J⁶¦³↗+↗↓+↓⊖η↙+/P↑η←+←⁵↑+↑⊖η+»

พิมพ์การอัดขึ้นรูปลงถ้ามี

F‹⁰ζ«J⁸±²↓+↓↓↗+↗⊖ζ↑+↑²P↙ζ←+←⁵↙+↙⊖ζ+»

พิมพ์การอัดรีดกลับหากมี

J⁶¦⁰

การอัดขึ้นรูปที่เหลืออยู่ทั้งหมดมาถึงจุดนี้ (ซึ่งไม่ได้วาดจนกว่าจะถึงจุดจบ!)

F‹⁰ζ«G↓³↙⊕ζ←⁷↑³↗⊕ζ ↙+↙⊖ζ↓+↓²+→⁵P↗ζ↑+↑²P←⁶↗+↗⊖ζ»

พิมพ์การอัดขึ้นรูปด้านหน้าหากมีอย่างระมัดระวังเพื่อลบส่วนของการอัดขึ้นรูปด้านซ้ายและล่างที่อาจทับซ้อนกัน

F‹⁰η«G←⁶↑⊕η↗³→⁶↓⊕η ↑+↑⊖η←+←⁵↙+/P↓η+⁵P↗²↓+↓⊖η»

พิมพ์การอัดขึ้นรูปหากมีอย่างระมัดระวังเพื่อลบส่วนของการอัดขึ้นรูปด้านหลังและซ้ายที่อาจทับซ้อนกัน

F‹⁰θ«G↗²→⊕θ↓⁴↙²←⊕θ →+⊖θ↗+/↑+↑²P←θ↙+/P↓³←+←⊖θ»

พิมพ์การอัดขึ้นรูปที่ถูกต้องหากมีความระมัดระวังเพื่อลบส่วนของการอัดขึ้นรูปลงและกลับที่อาจทับซ้อนกัน

P↗∧∧θη²P↓∧∧ζθ³P←∧∧ηζ⁶+

วาดตัวเชื่อมระหว่างการอัดขึ้นรูปหลัง


325 ไบต์ในถ่าน?! บนความท้าทายศิลปะ ASCII ! นั่นเพียงพอที่จะทำให้ฉันไม่ได้ลองสิ่งนี้ใน Ja (vaScri) pt!
Shaggy

@Shaggy นี่อาจไม่ใช่วิธีที่ดีที่สุดและอาจมีวิธีในการเล่นกอล์ฟที่ฉันได้มองข้ามไปแล้ว ฉันต้องบอกว่าวิธีการของ ngn นั้นดูน่าสนใจ แต่ดูเหมือนว่าเขาจะดึงรูปร่างเข้าไปในอาร์เรย์ภายในแล้วทำการตรวจจับขอบเพื่อสร้างเอาต์พุตของเขา
Neil

@Shaggy ฉันคิดวิธีแก้ปัญหา 195 ไบต์ขึ้นมาซึ่งฉันได้โพสต์แยกต่างหากเนื่องจากเป็นวิธีที่แตกต่างอย่างสิ้นเชิง ยังค่อนข้างสั้นของ APL แม้ว่า
Neil

3

ถ่าน , 195 164 144 ไบต์

≔⁺³×⁶Nθ≔⁺²×³Nη≔⊕⊗NζF…·±ζζF…·±ηηF…·±θθ«J⁻λι⁺κι≔⟦⟧δFE²↔⁻⁺ιμ·⁵FE²↔⁻κνFE²↔⁻⁺λξ·⁵⊞δ⌊⟦‹μζ‹νη‹ξθ‹¹№E⟦μνξ⟧‹π⊕ρ¹⟧≡Σδ¹+²§ |-/⁺⌕δ¹⌕⮌δ¹¦³+⁴§ +Σ…δ⁴¦⁶§ |-/⌕δ⁰

ลองออนไลน์! การเชื่อมโยงคือการใช้รหัสเวอร์ชันอย่างละเอียด ฉันโพสต์คำตอบนี้เป็นคำตอบที่แยกจากกันเพราะใช้วิธีการที่แตกต่างไปจากเดิมในการวาดการอัดขึ้นรูป คำอธิบาย:

≔⁺³×⁶Nθ≔⁺²×³Nη≔⊕⊗Nζ

ป้อนค่าการอัดขึ้นรูปและคำนวณขนาดครึ่งหนึ่งของสิ่งที่อยู่รอบลูกบาศก์ แต่ในเลขคณิตเลขจำนวนเต็มเนื่องจากช่วงของถ่านเป็นจำนวนเต็มเสมอ ที่มาของการส่งออกแมปไปยังศูนย์กลางของคิวบ์หน่วยเดิม

F…·±ζζF…·±ηηF…·±θθ«

วนรอบพิกัดทั้งหมดภายใน (รวมถึงขอบเขต) ลูกบาศก์ที่มีการอัดขึ้นรูป

J⁻λι⁺κι

ข้ามไปยังตำแหน่งเอาต์พุตที่สอดคล้องกับพิกัดเหล่านั้น

≔⟦⟧δFE²↔⁻⁺ιμ·⁵FE²↔⁻κνFE²↔⁻⁺λξ·⁵⊞δ⌊⟦‹μζ‹νη‹ξθ‹¹№E⟦μνξ⟧‹π⊕ρ¹⟧

จากพิกัดที่กำหนดให้มองไปในทิศทางทแยงมุมทั้งแปดเพื่อดูว่าการอัดขึ้นรูปนั้นซ้อนทับในทิศทางนั้นหรือไม่ การแอบดูพิกัดถูกตรวจสอบว่าพวกเขายังคงอยู่ภายในลูกบาศก์จากนั้นจำนวนแกนที่พิกัดอยู่ภายในลูกบาศก์เดิมจะต้องมากกว่า 1 โปรดทราบว่าเนื่องจากลูกบาศก์มีความสูงในการแสดงผลแปลก ๆ ค่าแกน Y peeked ที่เป็นจำนวนเต็มในขณะที่แกนอื่น ๆ ใช้พิกัดเศษส่วน

≡Σδ

พิจารณาจำนวนทิศทางที่การอัดขึ้นรูปทับซ้อนกัน มีห้ากรณีที่น่าสนใจที่เราต้องการพิมพ์อะไรบางอย่างเช่นในกรณีที่เป็นศูนย์นั่นหมายความว่านี่เป็นพื้นที่ว่างเปล่าและเราไม่ต้องการพิมพ์อะไรในขณะที่ในกรณีที่แปดนั่นหมายความว่านี่คือภายใน การอัดขึ้นรูปและทุกอย่างที่เราทำพิมพ์จะถูกพิมพ์ทับโดยชั้นใกล้จุดสายตา

¹+

+ถ้าไหลออกมาเท่านั้นคาบเกี่ยวในทิศทางเดียวแล้วนี้เป็นมุมด้านนอกและเราจำเป็นต้องส่งออก

²§ |-/⁺⌕δ¹⌕⮌δ¹¦

หากการอัดขึ้นรูปซ้อนทับในสองทิศทางนี่เป็นขอบด้านนอก ขอบแบบไหนจะถูกกำหนดจากการแยกระหว่างการซ้อนทับทั้งสอง 6 และ 7 เป็นขอบด้านหลังและจะถูกเขียนทับ 4 คือขอบทแยงมุม 2 คือขอบแนวตั้งและ 1 คือขอบแนวนอน (จริง ๆ แล้วฉันคำนวณ 7 ลบด้วยการแยกเพราะทำง่ายกว่า)

³+

+ถ้ารีดทับซ้อนในสามทิศทางแล้วนี้เป็นมุมด้านในกรณีที่หนึ่งในการอัดขึ้นรูปเป็นศูนย์และเราจำเป็นต้องส่งออก

⁴§ +Σ…δ⁴¦

หากการอัดขึ้นรูปซ้อนทับในสี่ทิศทางแสดงว่ามีสองกรณี: ใบหน้า (ทิศทางใดก็ได้) และมุมด้านในในกรณีที่มีการอัดขึ้นรูปเป็นบวกสามครั้ง ในกรณีหลังมีการทับซ้อนจำนวนคี่ต่อตัวแสดง

⁶§ |-/⌕δ⁰

หากการอัดขึ้นรูปซ้อนทับกันในหกทิศทางนี่เป็นขอบด้านใน มันทำงานเหมือนกับการเติมเต็มของขอบนอกยกเว้นว่าเราสนใจเฉพาะเมื่อหนึ่งในสองช่องว่างว่างเปล่าคือทิศทางไปยังจุดที่มองเห็น (รายการสุดท้ายในอาร์เรย์)


2

K (ngn / k) , 172 ไบต์

{s:1+|/'i-:&//i:1_--':1_4#!#'2*:\a:16!29!1+2/(!3){+'+x}/'{2+':''1+':'0=':x}'{++'x}\6{+'+0,|x}/{6}#{3}#'{2}#''s#1<+/x=!s:1+2*x;" |+/+ +-? ??? ++"s#@[&*/s;s/i;{x+y*~x};,//a]}

ลองออนไลน์!

k บังคับให้เขียนแก้ปัญหา apl ของฉัน

อัลกอริทึมเดียวกันยกเว้นว่าการเรนเดอร์ 3d-> 2d เสร็จสิ้นด้วยการกำหนดดัชนีกระจาย (แทนที่ k) การแทนการสร้างเมทริกซ์ 2 มิติสำหรับองค์ประกอบ 3 มิติแต่ละตัวและผสมกัน


คุณจะngn/aplเปรียบเทียบกับDyalog APLโซลูชันของคุณอย่างไร?
Galen Ivanov

@ GalenIvanov มันจะไม่เป็นการเปรียบเทียบที่ยุติธรรมเพราะในโซลูชัน apl ของฉันฉันใช้หน่วยความจำจำนวนมากเพื่อประหยัดสองสามไบต์และในกรณีที่สั้นกว่านั้น k จะเร็วขึ้นในกรณีนี้
511936

ฉันถามเกี่ยวกับการเปรียบเทียบระหว่างสองโซลูชัน APL - APL / Dyalog ของคุณหนึ่งกับโซลูชันสมมุติฐานใน ngn / apl
Galen Ivanov

อ๊ะฉันไม่รู้ว่าทำไมฉันถึงอ่านว่า "ngn / k" ... มันไม่ยุติธรรมอีกครั้ง - ngn / apl เป็นจาวาสคริปต์มือสมัครเล่น dyalog เป็นมืออาชีพ c
ngn

1
@ GalenIvanov อาจจะไม่ ngn / apl ไม่มีส่วนเพิ่มเติมล่าสุดในภาษาเช่นตัวดำเนินการ rank ( ) และ stencil ( )
ngn
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.