แสดงคำที่สงวนไว้บางคำ


9

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

ท้าทาย

ใช้ภาษาที่คุณเลือกเขียนโค้ดในภาษาที่คุณเลือกซึ่งกำหนดตัวเลขระหว่างหนึ่งถึงสิบ1<=n<=10ให้ผลลัพธ์nคำที่สงวนไว้ (คำหลัก) ของภาษาที่เลือก

ข้อมูลจำเพาะ

  • หากภาษาที่เลือกเป็นแบบตรงตามตัวพิมพ์ใหญ่
  • หากภาษาที่เลือกไม่ตรงตามตัวพิมพ์ใหญ่และเล็กคำสำคัญที่แสดงผลนั้นอาจเป็นกรณีใดก็ได้
  • หากภาษาที่เลือกมีน้อยกว่า 10 คำหลักที่บอกว่าpต้องส่งออกรหัสทุกคำที่สงวนไว้สำหรับการใด ๆnระหว่างและp10
  • หากเป็นไปได้ให้ระบุคำตอบว่าคุณถือว่าโอเปอเรเตอร์เป็นคำหลักหรือไม่

ตัวอย่างที่เป็นไปได้สำหรับ Java (JDK10)

  • n=1 --> true
  • n=3 --> try new interface
  • n=4 --> continue this long break

ตัวอย่างที่เป็นไปได้สำหรับ> <>

  • n=1 --> >
  • n=3 --> > < ^
  • n=4 --> > < \ /

ตัวอย่างที่เป็นไปได้สำหรับ Brain-Flak

  • n=1 --> (
  • n=3 --> ( ) [ ]
  • n=9 --> ( ) [ ] { } < >

กฎระเบียบ

  • อินพุตและเอาต์พุตจะได้รับในรูปแบบที่สะดวกใด
  • ไม่จำเป็นต้องจัดการค่าอินพุตที่ไม่ถูกต้องอินพุตที่ถูกต้องคือ: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
  • ยอมรับได้ทั้งโปรแกรมหรือฟังก์ชั่น หากฟังก์ชั่นคุณสามารถส่งคืนผลลัพธ์มากกว่าการพิมพ์
  • หากเป็นไปได้โปรดรวมลิงค์ไปยังสภาพแวดล้อมการทดสอบออนไลน์เพื่อให้ผู้อื่นสามารถลองใช้รหัสของคุณได้!
  • ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม
  • นี่คือ ดังนั้นกฎการเล่นกอล์ฟตามปกติทั้งหมดจึงนำมาใช้และรหัสที่สั้นที่สุด (เป็นไบต์) จะชนะ

ความคิดเห็นไม่ได้มีไว้สำหรับการอภิปรายเพิ่มเติม การสนทนานี้ได้รับการย้ายไปแชท
Mego

2
continue this long breakฉันหวังว่า! นั่นเป็นเหตุผลที่ฉันอยู่ใน SE!
Stan Strum

จำนวนเต็มถูกสงวนไว้ แต่ฉันเดาว่าน่าจะเป็นช่องโหว่
snoram

คำตอบ:


7

APL (Dyalog Unicode) , 9 ไบต์SBCS

โปรแกรมเต็มรูปแบบ แสดง stdin สำหรับn(ใช้งานได้จริงในช่วง 0–29) คำหลัก APL เป็นสัญลักษณ์อักขระเดียวดังนั้นสิ่งนี้จึงพิมพ์nสัญลักษณ์ไปที่ stdout

⎕↑156↓⎕AV

ลองออนไลน์!

⎕AV อะตอมมิกเวกเตอร์ (เช่นชุดอักขระ)

156↓ ปล่อย 156 องค์ประกอบแรก

⎕↑ แจ้งให้nและรับองค์ประกอบหลายอย่างจากด้านบน


5

Python 2 , 25 ไบต์

lambda n:'=+*/%&^|<>'[:n]

ฟังก์ชั่นที่ไม่มีชื่อยอมรับจำนวนเต็มใน [1,10] ซึ่งจะส่งกลับสตริงของตัวดำเนินการไบนารีไบต์เดียว

ลองออนไลน์!

ผู้ประกอบการ:

=  Assign
+  Addition
*  Multiplication
/  Division
%  Modulo
&  Bitwise-AND
^  Bitwise-XOR
|  Bitwise-OR
<  Less Than?
>  Greater Than?

หากอนุญาตให้ใช้คำหลักจริงเท่านั้น: 40 ไบต์

from keyword import*
lambda n:kwlist[:n]

ฟังก์ชั่นที่ไม่มีชื่อยอมรับจำนวนเต็มใน [1,10] ซึ่งจะส่งกลับรายการของสตริง

ลองออนไลน์!

รหัสควรจะตรงไปตรงมา - มันกำหนดฟังก์ชั่นหนึ่งอาร์กิวเมนต์nโดยใช้lambda n:...ที่ส่งกลับแรกn( ...[:n]) ของคำหลักที่รู้จักกันโดยใช้ห้องสมุดมาตรฐานของkeywords.kwlist(พร้อมกับเทคนิคการเล่นกอล์ฟมาตรฐานของimport*)


จุดเล็ก ๆ น้อย ๆ แต่แน่นอน=คือ "การมอบหมาย" ตามที่==เป็น "การทดสอบเพื่อความเท่าเทียมกัน"
Noodle9

อุ๊ปส์จับได้ดีขอบคุณ @ Noodle9
Jonathan Allan

ลงคะแนนเสียงแปลก ๆ ! แก้ไข: มีคนตัดสินใจคำตอบทั้งหมดที่นี่สมควรได้รับการโหวต LOL
Jonathan Allan

ไม่ใช่ฉันอย่างแน่นอน - ฉันชอบคำตอบของคุณและอัปเดตมัน! :)
ก๋วยเตี๋ยว 9

4

Java 10, 83 72 ไบต์ (คำหลัก)

n->"do   if   for  int  new  try  var  byte case char ".substring(0,n*5)

ลองออนไลน์

คำตอบเก่า 83 ไบต์:

n->java.util.Arrays.copyOf("do if for int new try var byte case char".split(" "),n)

ลองออนไลน์

คำอธิบาย:

n->                         // Method with integer parameter and String-array return-type
  java.util.Arrays.copyOf(  //  Create a copy of the given array:
    "do if for int new try var byte case char".split(" ") 
                            //   The keywords as String-array,
    ,n)                     //   up to and including the given `n`'th array-item

รายการคำหลักที่มีอยู่สำหรับ Java 8 Java 10 มีคำหลักvarเพิ่มเติมจากสิ่งเหล่านี้


Java 8+, 30 ไบต์ (ตัวดำเนินการ)

n->"+-/*&|^~<>".substring(0,n)

ลองออนไลน์


3

เยลลี่ 3 ไบต์

ØAḣ

ลิงก์ monadic ยอมรับจำนวนเต็มและส่งคืนรายการอักขระ

ลองออนไลน์!

อักขระที่เป็นผลลัพธ์เป็นอะตอม monadic ทั้งหมดในโค้ดเพจของ Jelly :

A   Absolute value.
B   Convert from integer to binary.
C   Complement; compute 1 − z.
D   Convert from integer to decimal.
E   Check if all elements of z are equal.
F   Flatten list.
G   Attempt to format z as a grid.
H   Halve; compute z ÷ 2.
I   Increments; compute the differences of consecutive elements of z.
J   Returns [1 … len(z)].

อย่างไร?

ØAḣ - Link: integer n (in [1,10])
ØA  - yield uppercase alphabet = ['A','B','C',...,'Z']
  ḣ - head to index n

โอ้ - ฉันเห็นบางคนตัดสินใจลงคะแนนทุกคำตอบ กีฬาเป็นอย่างไร!
Jonathan Allan

คิดว่าคำตอบนี้ควรได้รับการสนับสนุนด้วยเช่นกัน! :)
ก๋วยเตี๋ยว 9

3

ถ่าน 16 ไบต์

✂”yPBG¤T⎚M↶↷J”⁰N

น่าเสียดายที่ไม่มีตัวแปรที่กำหนดไว้ล่วงหน้าสำหรับโค้ดเพจของตัวเองใน Charcoal

ลองออนไลน์

คำอธิบาย:

รับสตริงย่อยจากดัชนี 0 ถึงหมายเลขอินพุท:

Slice("...",0,InputNumber)
✂”y...”⁰N

สตริงที่มี 10 คำสำคัญ:

”yPBG¤T⎚M↶↷J”

ฉันถือว่าตัวอักษรแบบเต็มความกว้างมีรหัสตัวอักษรต่อเนื่องกันคุณจึงสามารถพิมพ์ตัวแรกnของตัวอักษรตัวนั้นซึ่งฉันสามารถทำได้ใน 8 ไบต์
Neil

@Neil แต่อักขระสิบตัวที่ต่อเนื่องกันเหล่านั้นถูกใช้เป็นคำสั่ง / โอเปอเรเตอร์หรือไม่ ตัวอย่างที่ไม่ได้ใช้ในทุกตอนนี้มันคืออะไร? (ยกเว้นร่วมกับKAหรือ⌕A.)
Kevin Cruijssen

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

ไม่เป็นไรหรอกพวกมันคือตัวแปรไม่ใช่คำสั่งฉันเดา
Neil

3

Perl 5 -lp , 24 ไบต์

#!/usr/bin/perl -lp
$_=(grep!eval,a..zz)[$_]

ลองออนไลน์!

ง่ายต่อการขยายกับคำหลักมากขึ้นและอีกต่อไป แต่คุณจะต้องทำท่อพิเศษเริ่มต้นที่ 4 ตัวอักษรเพราะคุณจะทำงานเป็นปัญหากับdump, eval, exit, getcฯลฯ ..

แน่นอนว่าการแสดงผลตัวดำเนินการและ sigils นั้นน่าเบื่อ แต่สั้นกว่าที่ 11 ไบต์:

#!/usr/bin/perl -lp
$_=chr$_+35

ลองออนไลน์!

(ฉันข้าม#เนื่องจากมันไม่ชัดเจนว่าฉันควรจัดประเภทอย่างไรในบริบทของการท้าทายนี้)


3

JavaScript (Node.js) , 79 61 ไบต์

n=>'true int var for in if new try of do'.split` `.slice(0,n)

ลองออนไลน์!

วิธี:

n =>         // the input (will be an integer) between 1 and 10 (both inclusive)
    '        // beginning our string 
        true int var for in if new try of do'. // space separated reserved words
    split` `.        // turn it into an array every time there is a space we add to array
    slice(0,n)      // return elements of array starting from 0 and upto n

หากอนุญาตให้ใช้ตัวดำเนินการ (ส่วนใหญ่จะเป็นเพราะพวกเขาเป็นคำสงวน) จากนั้น:

JavaScript (Node.js) , 26 25 ไบต์

n=>'|/^%+<&*-='.slice(-n)

ลองออนไลน์!

บันทึก 8 ไบต์ขอบคุณ@Adamและอีก 1 ไบต์ต้องขอบคุณ@ l4m2

วิธี:

n =>     // input (integer from 0-9 inclusive)
    '|/^%+<&*-='.    // operators make a shorter string 
        slice(-n)   // outputs string chars from last upto n 
            // this works since all operators are single chars and not multi chars.


โอ้ใช่แล้วยังเล่นกอล์ฟอยู่ ขอบคุณ @ Adám ขอบคุณมัน
มูฮัมหมัดซาลมาน

3
ฉันไม่คิดว่าintเป็น "คำสงวน" ตามคำจำกัดความในการท้าทาย คุณสามารถตั้งชื่อตัวแปรintใน JavaScript ได้อย่างแน่นอน
kamoroso94

1
หากฉันจำได้ดีintจะถูกสงวนไว้เป็นคำหลักที่เป็นไปได้ในอนาคตโดยข้อกำหนด ECMAScript
BNilsou

ทำไมsubstrแทนslice?
l4m2

3

ทับทิมขนาด 22 ไบต์

->n{'+-*/%&|^<>'[0,n]}

ลองออนไลน์!

-2 ไบต์ต้องขอบคุณ@ benj2240


ตกลง. จะอัปเดตคำตอบของฉัน

String#[]มีโอเวอร์โหลดสองอาร์กิวเมนต์ที่คุณสามารถใช้สำหรับ -2 ไบต์:[0,n]
benj2240

pไม่ใช่คำสงวน&ควรทำงาน
Asone Tuhid

@ AsoneTuhid: p ใช้สำหรับการพิมพ์เช่นกัน แต่คุณพูดถูกฉันอาจจะแทนที่มันได้ ขอบคุณ

@ I'm Ioneone ใช่ แต่เป็นวิธีที่คุณสามารถกำหนดมันใหม่และคุณสามารถสร้างตัวแปรที่มีชื่อpซึ่งจะเข้าถึงได้แทนที่จะเรียกวิธีที่ไม่มีตัวแปร ( p = 1; p p #=> 1)
Asone Tuhid

2

Pyth , 4 ไบต์

>QPG

ลองออนไลน์!

น่าเสียดายที่ตัวอักษรหลายตัวเป็นตัวแปร ( GHJKNQTYZbdkz)

p  <any>                  Print A, with no trailing newline. Return A.
q  <any> <any>            A == B
r  <str> 0                A.lower()
r  <str> 1                A.upper()
r  <str> 2                A.swapcase()
r  <str> 3                A.title()
r  <str> 4                A.capitalize()
r  <str> 5                string.capwords(A)
r  <str> 6                A.strip() - Remove whitespace on both sides of A.
r  <str> 7                Split A, eval each part.
r  <seq> 8                Run length encode A. Output format [[3, 'a'], [2, 'b'], [1, 'c'], [1, 'd']].
r  <str> 9                Run length decode A. Input format '3a2bcd' -> 'aaabbcd'
r  <seq> 9                Run length decode A. Input format [[3, 'a'], [2, 'b'], [1, 'c'], [1, 'd']].
r  <int> <int>            Range, half inclusive. range(A, B) in Python, or range(A, B, -1).
r  <str> <str>            String range. r(C(A), C(B)), then convert each int to string using C.
r  <int> <seq>            r(B, A)
s  <col(str)>             Concatenate. ''.join(A)
s  <col>                  reduce on +, base case []. (Pyth +)
s  <cmp>                  Real part. A.real in Python.
s  <num>                  Floor to int. int(A) in Python.
s  <str>                  Parse as int. "" parses to 0. int(A) in Python.
t  <num>                  A - 1.
t  <seq>                  Tail. A[1:] in Python.
u  <l:GH> <seq/num> <any> Reduce B from left to right, with function A(_, _) and C as starting value. G, H -> N, T ->. A takes current value, next element of B as inputs. Note that A can ignore either input.
u  <l:GH> <any> <none>    Apply A(_, _) until a result that has occurred before is found. Starting value B. A takes current value, iteration number as inputs.
v  <str>                  Eval. eval(A) without -s, ast.literal_eval(A) with -s (online). literal_eval only allows numeric, string, list, etc. literals, no variables or functions.
w                         Take input. Reads up to newline. input() in Python 3.
x  <int> <int>            Bitwise XOR. A ^ B in Python.
x  <lst> <any>            First occurrence. Return the index of the first element of A equal to B, or -1 if none exists.
x  <str> <str>            First occurrence. Return the index of the first substring of A equal to B, or -1 if none exists.
x  <non-lst> <lst>        All occurrences. Returns a list of the indexes of elements of B that equal A.
x  <str> <non-lst>        First occurence. Return the index of the first substring of A equal to str(B), or -1 if none exists.
y  <seq>                  Powerset. All subsets of A, ordered by length.
y  <num>                  A * 2.

2

C # .NET, 76 62 ไบต์ (คำหลัก)

n=>"as  do  if  in  is  for int new out ref ".Substring(0,n*4)

ลองออนไลน์

คำตอบเก่า 76 ไบต์:

using System.Linq;n=>"as do if in is for int new out ref".Split(' ').Take(n)

ลองออนไลน์

คำอธิบาย:

using System.Linq;  // Required import for Take
n=>                 // Method with integer parameter and IEnumerable<string> return-type
  "as do if in is for int new out ref".Split(' ') 
                    //  The keywords as string-array,
  .Take(n)          //  and return the first `n` items

รายการคำหลักที่มีอยู่ใน C # .NET


C # .NET, 30 ไบต์ (ตัวดำเนินการ)

n=>"+-/*&|^~<>".Substring(0,n)

ลองออนไลน์


2

ชาร์ม , 52 ไบต์

เอาท์พุทนี้ทั้งหมดของคำลิขสิทธิ์ในเสน่ห์

" [  := :: \"   " 0 2 copyfrom 3 * substring pstring

เนื่องจากโค้ดที่ไม่ใช่แบบเรียกซ้ำทั้งหมดใน Charm จะเป็นแบบอินไลน์ได้จึงเป็นฟังก์ชันที่ไม่ระบุตัวตน โทรแบบนี้:

4 " [  := :: \"   " 0 2 copyfrom 3 * substring pstring 

(ผลลัพธ์[ := :: "คือคำที่สงวนไว้สี่คำเท่านั้น)


ให้ฟังก์ชั่นนี้ชื่อเพิ่ม 5 ไบต์:

f := " [  := :: \"   " 0 2 copyfrom 3 * substring pstring

2

Brain-Flak , 122 120 ไบต์

({}<((((((((((((((()()){}()){}){}){})())[][]){}())()())[(([][]){}){}()])()())){}())[()()])>){({}<{({}<>)(<>)}{}>[()])}<>

ลองออนไลน์!

เพียงทำส่วนของฉันเพื่อเติมภาษาตัวอย่าง ส่งออก()[]<>}{popping ปิดด้านหน้าสำหรับตัวเลขที่น้อยกว่า 8


2

Unary, 6072204020736072426436 378380483266268 ไบต์

+[>+<+++++]>---. (0o12602122222703334)

ขอบคุณ Jo King สำหรับการลดลง 99.999993768646738908474177860631%


1
หมายเลขไบต์ถูกต้องหรือไม่
mdahmoune

@mdahmoune ฉันคิดอย่างนั้น
l4m2

!! มันใหญ่มาก
mdahmoune

@mdahmoune จริงๆแล้วมันค่อนข้าง ' เล็ก ' สำหรับ Unary ;) หากคุณค้นหาคำตอบ Unary หรือ Lenguage อื่น ๆ ที่นี่ใน PPCG มีบางอย่างที่ใหญ่กว่านี้
Kevin Cruijssen

ไม่,[.-]ใน Lenguage เหมาะกับความต้องการหรือไม่
l4m2


2

Ruby, 71 68 ไบต์

->n{(?a..'zzz').reject{|x|begin;eval x+'=n';rescue Object;end}[0,n]}

โอเคไม่ใช่วิธีที่สั้นที่สุด แต่ก็สนุกเกินไปที่จะไม่โพสต์ โดยทางโปรแกรมจะค้นหาสตริงทั้งหมดที่มีตัวอักษรตัวเล็กได้สูงสุดสามตัวที่ไม่สามารถกำหนดได้ มีอยู่ว่าจะเป็น 10:["do", "if", "in", "or", "and", "def", "end", "for", "nil", "not"]10:

แก้ไข: บันทึกแล้ว 3 ไบต์ขอบคุณ Asone Tuhid


1
ดีคุณสามารถบันทึก 3 ไบต์โดยการช่วยชีวิตObjectเนื่องจากมันเป็นซูException
เปอร์คลาส

2

Japt , 3 ไบต์

ส่งคืนสตริงโดยที่อักขระแต่ละตัวเป็นชื่อเมธอดใน Japt

;îC

ลองมัน

;Cคือตัวอักษรตัวพิมพ์เล็กและîทำซ้ำจนกว่าความยาวจะเท่ากับอินพุต


@Downvoter คุณลืมที่จะแสดงความคิดเห็น! : \
ปุย

ดูเหมือนว่าใครบางคนได้ลงคะแนนให้คำตอบทั้งหมด: /
mdahmoune


2

R , 76 62 60 57 ไบต์

บันทึกได้ 12 ไบต์ด้วยMickyT

บันทึก 5 ไบต์ด้วยsnoram

cat(c("if","in",1:0/0,"for",F,T,"NULL","else")[1:scan()])

ลองออนไลน์!

มีคำสงวนไว้ไม่มากใน Rแต่คำเหล่านี้อยู่ในกลุ่มที่สั้นที่สุดในการเข้ารหัส มีเพียง 9 ที่นี่ แต่ถ้าป้อนเข้า10จะได้รับค่าที่ขาดหายไปNAจะถูกผนวกเข้ากับส่วนท้ายของรายการและพิมพ์


บางส่วนเงินฝากออมทรัพย์เล็ก ๆ น้อย ๆ อย่างรวดเร็ว
MickyT

@MickyT ขอบคุณ! ตระหนักว่าฉันสามารถจัดเก็บ"NaN"เป็น0/0หรือNaNเช่นกันสำหรับไบต์คู่อื่น
Giuseppe

แทนที่ด้วย1/0,0/0 1:0/0
snoram

2
@snoram อายอดเยี่ยม! และยินดีต้อนรับสู่ PPCG! ฉันหวังว่าจะได้คำตอบแรกของคุณที่นี่! ดูเคล็ดลับสำหรับการเล่นกอล์ฟใน Rและอย่าลังเลที่จะ ping ฉันในการแชท! :-)
Giuseppe

ขอบคุณ! @Giuseppe btw 1[1:2]ผลตอบแทน[1] 1 NA=> คุณสามารถข้ามNAในเวกเตอร์ดั้งเดิม ... หากผู้ใช้ป้อนเป็น 10 มันจะถูกผนวกเข้าท้าย
snoram

1

Python 2 , 64 ไบต์

lambda n:'as if def del for try elif else from pass'.split()[:n]

ลองออนไลน์!


Python 2 , 57 ไบต์ (พร้อมตัวดำเนินการ)

lambda n:'as if in is or and def del for not'.split()[:n]

ลองออนไลน์!


ตัวดำเนินการคำหลัก


1
ฟังก์ชั่นนี้สั้นกว่า 2 ไบต์
ovs

1

ช่องว่าง , 84 ไบต์

[S S S T    S S S S S N
_Push_32][S N
S _Duplicate][T N
S S _Print_as_character][S N
S _Duplicate][T N
T   T   _Read_STDIN_as_integer][T   T   T   _Retrieve][S S S T  N
_Push_1][T  S S T   _Subtract][S N
S _Duplicate][N
T   S N
_If_0_Jump_to_Label_EXIT][S S S T   S S T   N
_Push_9][T  N
S S Print_as_character][S S S T N
_Push_1][T  S S T   _Subtract][N
T   S N
_If_0_Jump_to_Label_EXIT][S S S T   S T S N
_Push_10][T N
S S _Print_as_character][N
S S N
_Create_Label_EXIT]

เพิ่มตัวอักษรS(ช่องว่าง), T(แท็บ) และN(บรรทัดใหม่) เป็นการเน้นเท่านั้น
[..._some_action]เพิ่มเป็นคำอธิบายเท่านั้น

ช่องว่างมีเพียง 'คำหลัก' ที่ถูกต้องสามรายการคือช่องว่างแท็บและบรรทัดใหม่

คำอธิบายในรหัสเทียม:

Print space
Integer i = STDIN as integer - 1
If i is 0:
  Exit program
Else:
  Print tab
  i = i - 1
  If i is 0:
    Exit program
  Else:
    Print new-line
    Exit program

ตัวอย่างการทำงาน:

การป้อนข้อมูล: 1

Command       Explanation                 Stack      Heap      STDIN    STDOUT   STDERR

SSSTSSSSSN    Push 32                     [32]
SNS           Duplicate top (32)          [32,32]
TNSS          Print as character          [32]                          <space>
SNS           Duplicate top (32)          [32,32]
TNTT          Read STDIN as integer       [32]       {32:1}    1
TTT           Retrieve                    [1]        {32:1}
SSSTN         Push 1                      [1,1]      {32:1}
TSST          Subtract top two (1-1)      [0]        {32:1}
SNS           Duplicate top (0)           [0,0]      {32:1}
NTSN          If 0: Jump to Label_EXIT    [0]        {32:1}
NSSN          Create Label_EXIT           [0]        {32:1}
                                                                                 error

โปรแกรมหยุดทำงานโดยมีข้อผิดพลาด: ไม่มีการกำหนดทางออก
ลองใช้ออนไลน์ (ด้วยพื้นที่ว่างเปล่าแท็บและบรรทัดใหม่เท่านั้น)
ส่งออกพื้นที่เดียว

การป้อนข้อมูล: 2

Command       Explanation                 Stack      Heap      STDIN    STDOUT   STDERR

SSSTSSSSSN    Push 32                     [32]
SNS           Duplicate top (32)          [32,32]
TNSS          Print as character          [32]                         <space>
SNS           Duplicate top (32)          [32,32]
TNTT          Read STDIN as integer       [32]       {32:2}    2
TTT           Retrieve                    [2]        {32:2}
SSSTN         Push 1                      [2,1]      {32:2}
TSST          Subtract top two (2-1)      [1]        {32:2}
SNS           Duplicate top (1)           [1,1]      {32:2}
NTSN          If 0: Jump to Label_EXIT    [1]        {32:2}
SSSTSSTN      Push 9                      [1,9]      {32:2}
TNSS          Print as character          [1]        {32:2}             \t
SSSTN         Push 1                      [1,1]      {32:2}
TSST          Subtract top two (1-1)      [0]        {32:2}
NTSN          If 0: Jump to Label_EXIT    []         {32:2}
NSSN          Create Label_EXIT           []         {32:2}
                                                                                 error

โปรแกรมหยุดทำงานโดยมีข้อผิดพลาด: ไม่มีการกำหนดทางออก
ลองใช้ออนไลน์ (ด้วยพื้นที่ว่างเปล่าแท็บและบรรทัดใหม่เท่านั้น)
ส่งออกช่องว่างตามด้วยแท็บ

อินพุต: 3(หรือสูงกว่า)

Command       Explanation                 Stack      Heap      STDIN    STDOUT   STDERR

SSSTSSSSSN    Push 32                     [32]
SNS           Duplicate top (32)          [32,32]
TNSS          Print as character          [32]                          <space>
SNS           Duplicate top (32)          [32,32]
TNTT          Read STDIN as integer       [32]       {32:3}    3
TTT           Retrieve                    [3]        {32:3}
SSSTN         Push 1                      [3,1]      {32:3}
TSST          Subtract top two (3-1)      [2]        {32:3}
SNS           Duplicate top (2)           [2,2]      {32:3}
NTSN          If 0: Jump to Label_EXIT    [2]        {32:3}
SSSTSSTN      Push 9                      [2,9]      {32:3}
TNSS          Print as character          [2]        {32:3}             \t
SSSTN         Push 1                      [2,1]      {32:3}
TSST          Subtract top two (2-1)      [1]        {32:3}
SSSTSTSN      Push 10                     [1,10]     {32:3}
TNSS          Print as character          [1]        {32:3}             \n
NSSN          Create Label_EXIT           []         {32:3}
                                                                                 error

โปรแกรมหยุดทำงานโดยมีข้อผิดพลาด: ไม่มีการกำหนดทางออก
ลองใช้ออนไลน์ (ด้วยพื้นที่ว่างเปล่าแท็บและบรรทัดใหม่เท่านั้น)
ส่งออกช่องว่างตามด้วยแท็บตามด้วยบรรทัดใหม่


1

Brain-Flakขนาด 118 ไบต์

({}<(((((((((((()()()()()){}){}){})())(([][][])){}{}())()())([][][])[]{})()())[][][][][])()())>){({}<({}<>)<>>[()])}<>

ลองออนไลน์!

# Push stuffs under the counter
({}<(((((((((((()()()()()){}){}){})())(([][][])){}{}())()())([][][])[]{})()())[][][][][])()())>)

# While True
{
    # Decrement the counter
    ({}<

        # Toggle a character
        ({}<>)<>
    >[()])
}

# Display alternate stack
<>

สิ่งนี้จะพิมพ์ค่าว่างเป็นไบต์พิเศษสำหรับ 9 และ 10
Jo King


1

> <> , 11 10 9 ไบต์

1-:n:0=?;

ลองออนไลน์!

กลับกลายเป็นทางออกที่ง่ายที่สุดคือที่ดีที่สุด เอาต์พุตนี้มีตัวเลข n แรกเริ่มต้นจาก 0

โซลูชัน 10 ไบต์เก่า

"'r{$[>o<3

ลองออนไลน์!

ทางเลือก 10 ไบต์บางอย่าง:

  • "':1+{[>o<
  • "r:n[~>o<a
  • "'a{[>o<bc

1

Haskell , 22 ไบต์

(`take`"';,=\"@\\`|~")

ลองออนไลน์!

ขอบคุณ @Angs ที่จับข้อผิดพลาดของคำหลัก

ฉันรู้สึกว่าสิ่งนี้อาจสั้นกว่านี้ได้โดยการสร้างสตริงแทนที่จะกำหนดอย่างชัดเจน แต่ฉันไม่พบอักขระ ASCII ต่อเนื่องจำนวน 10 ตัวที่เป็นคำหลักของ Haskell (ฉันพบบางคำที่ใกล้เคียงกันหากคุณนับคำหลักส่วนขยายภาษา) หากมีอยู่คุณสามารถลดให้เหลือ 15 ไบต์ด้วยสิ่งนี้แทนที่%ด้วยอักขระเริ่มต้น:

(`take`['%'..])

ไม่มีคำหลักเชิงสัญลักษณ์:

Haskell , 58 ไบต์

(`take`words"of in do let then else case data type class")

ลองออนไลน์!


!ไม่ได้จองไว้เช่นlet a!b=a+bถูกปรับ
Angs

โอ๊ะคุณพูดถูก แก้ไขทั้งสองส่วนเนื่องจากasเป็นตัวระบุที่ถูกต้อง
user9549915

.ไม่ได้จองไว้เช่นกัน - ไม่มีตัวดำเนินการอื่น ๆ ในการเปิดตัวแบบ+อื่น ๆ - ดูสิ่งนี้
Angs

1

C (gcc) , 62 60 ไบต์

-2 ขอบคุณ GPS

f(n){puts("autocasecharelseenumgotolongvoidint do"+40-4*n);}

ลองออนไลน์!

ฉันหมายความว่า ... ไม่จำเป็นต้องแยกคำหลักออกจากกัน

ในกรณีที่ฉันอ่านผิด - หรือคุณสนใจอะไรมากกว่านี้ในจิตวิญญาณของคำถาม - นี่เป็นเวอร์ชั่นสำรองที่แยกช่องว่าง:

C (gcc) , 69 ไบต์

f(n){puts("auto case char else enum goto long void int  do"+50-5*n);}

ลองออนไลน์!


คุณต้องการช่องว่างสองช่องหลังจากนั้นdoหรือไม่?
Jo King

@ โจ้กกิ้งใช่มิฉะนั้นตัวอักษรขยะสามารถเขียนได้
Gastropner

คุณสามารถตัดช่องว่างหลังจากdoถ้าคุณใช้ฟังก์ชั่นเอาท์พุทสตริง 69 bytes: Tio
GPS


1

แท็กซี่ 509 ไบต์

"[]a lrnsew" is waiting at Writer's Depot. Go to Post Office: w 1 l 1 r 1 l. Pickup a passenger going to The Babelfishery. Go to The Babelfishery: s 1 l 1 r.Pickup a passenger going to The Underground.Go to Writer's Depot: n 1 l, 1 l, 2 l.Pickup a passenger going to Chop Suey.Go to Chop Suey: n, 3 r, 3 r.[a]Pickup a passenger going to Post Office.Go to Post Office: s 1 r 1 l 2 r 1 l.Go to The Underground: n 1 r 1 l.Pickup a passenger going to The Underground.Go to Chop Suey: n 2 r 1 l.Switch to plan "a".

นี่ใช้สตริง hardcoded ที่ด้านบนและพิมพ์อักขระ "n" จากนั้นจึงเกิดข้อผิดพลาดกับ "ข้อผิดพลาด: ไม่พบผู้โดยสารขาออก"

สตริงประกอบด้วย:

  1. [และ]ตัวละครที่ใช้ในการประกาศแผน
  2. a ใช้ในไวยากรณ์ "Pickup a ผู้โดยสาร ... "
  3. อักขระช่องว่างซึ่งจำเป็นสำหรับการแยกส่วนของไวยากรณ์
  4. l และ rสั้นสำหรับ "ซ้าย" และ "ขวา" ใช้เพื่อบอกคนขับว่าจะเลี้ยวได้อย่างไร
  5. n, s, eและwสี่ทิศทาง

ฉันเชื่อว่าสิ่งเหล่านี้นับเป็นคำหลักของตัวละครเดียว Ungolfed:

"[]a lrnsew" is waiting at Writer's Depot.
Go to Post Office: west, 1st left, 1st right, 1st left.
Pickup a passenger going to The Babelfishery.
Go to The Babelfishery: south, 1st left, 1st right.
Pickup a passenger going to The Underground.
Go to Writer's Depot: north, 1st left, 1st left, 2nd left.
Pickup a passenger going to Chop Suey.
Go to Chop Suey: north, 3rd right, 3rd right.
[print character]
Pickup a passenger going to Post Office.
Go to Post Office: south, 1st right, 1st left, 2nd right, 1st left.
Go to The Underground: north, 1st right, 1st left.
Pickup a passenger going to The Underground.
Go to Chop Suey: north, 2nd right, 1st left.
Switch to plan "print character".

1

J , 15 ไบต์

[:u:46,"0~65+i.

ลองออนไลน์!

ให้อาร์เรย์ของสตริงA.เป็นJ.เพื่อ

คำที่เป็นจุดใน J ทำหน้าที่เป็นบิวด์อิน (เช่นa.หรือA.) หรือโครงสร้างการควบคุม (เช่นif.หรือdo.) หรือเพียงแค่โยนข้อผิดพลาดการสะกด ไม่สามารถใช้สิ่งเหล่านี้เป็นตัวระบุได้

น่าสนใจน้อยกว่า 15 ไบต์

{.&'!#$%^*-+=|'

ลองออนไลน์!

ให้คำกริยาแบบหนึ่งไบต์จำนวน 10 ข้อ


1

ทุบตีและเปลือกใช้ 20 ไบต์

compgen -b|head -$1

คุณสามารถบันทึกสิ่งนั้นลงในไฟล์ที่มีการอนุญาตการใช้งาน (บิวอิน) และรันภายใต้การทุบตีเช่นนี้

$ ./builtins 5
 .
 : 
 [
 alias 
 bg  

ส่งออกอินพุช N bash แรก

หากคุณใช้เชลล์บางตัวที่ไม่ใช่ bash คุณจะต้องใช้ shebang #! / bin / bash line ที่จุดเริ่มต้นของไฟล์สำหรับ + ​​12b


1

QBasic, 60 ไบต์

INPUT n
?LEFT$("CLS FOR DEF RUN DIM PUT GET SUB END IF",n*4)

คำตอบนี้เหมาะกับวิญญาณของคำถามที่ดีที่สุดฉันเชื่อว่า: การแสดงผลคำหลักที่สงวนไว้ตามตัวอักษรด้วยช่องว่างระหว่าง ฉันไม่คิดว่าตัวดำเนินการเชิงสัญลักษณ์นับรวมเป็น "คำ" ใน QBasic แต่เพื่อความสมบูรณ์นี่เป็นคำตอบ 30 ไบต์โดยใช้โอเปอเรเตอร์:

INPUT n
?LEFT$("+-*/\^=><?",n)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.