Keluarkan beberapa kata yang dipesan

9

Untuk bahasa komputer, kata yang dipesan adalah kata yang tidak dapat digunakan sebagai pengidentifikasi, seperti nama variabel, fungsi, atau label. Untuk bahasa komputer lainnya, kata kunci dapat dianggap sebagai set instruksi bahasa.

Tantangan

Dengan menggunakan bahasa pilihan Anda, tulis kode dalam bahasa yang dipilih yang memberikan angka antara satu dan sepuluh 1<=n<=10,, menghasilkan setiap nkata (kata kunci) cadangan dari bahasa yang dipilih.

Spesifik

  • Jika bahasa yang dipilih adalah case-sensitive, kata kunci yang dikeluarkan juga harus.
  • Jika bahasa yang dipilih tidak peka huruf besar kata kunci yang dikeluarkan dapat dalam hal apa pun.
  • Jika bahasa yang dipilih memiliki kata kunci kurang dari 10 p, kode harus menampilkan semua kata yang dipesan untuk nantara pdan 10.
  • Jika mungkin tentukan dalam jawaban apakah Anda menganggap operator sebagai kata kunci atau bukan.

Kemungkinan sampel untuk Java (JDK10)

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

Kemungkinan sampel untuk> <>

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

Kemungkinan sampel untuk Brain-Flak

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

Aturan

  • Input dan output dapat diberikan dalam format apa pun yang nyaman .
  • Tidak perlu menangani nilai input yang tidak valid , input yang valid adalah: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10.
  • Program lengkap atau fungsi dapat diterima. Jika suatu fungsi, Anda dapat mengembalikan output daripada mencetaknya.
  • Jika memungkinkan, harap sertakan tautan ke lingkungan pengujian online agar orang lain dapat mencoba kode Anda!
  • Celah standar dilarang.
  • Ini adalah sehingga semua aturan golf biasa berlaku, dan kode terpendek (dalam byte) menang.
mdahmoune
sumber
Komentar bukan untuk diskusi panjang; percakapan ini telah dipindahkan ke obrolan .
Mego
2
continue this long breakSaya harap! Itu sebabnya saya di SE!
Stan Strum
bilangan bulat dicadangkan tapi saya kira itu akan menjadi celah.
snoram

Jawaban:

7

APL (Dyalog Unicode) , 9 byte SBCS

Program lengkap. Anjurkan stdin untuk n(sebenarnya berfungsi untuk rentang 0-29). Kata kunci APL adalah simbol karakter tunggal, jadi ini mencetak nsimbol ke stdout.

⎕↑156↓⎕AV

Cobalah online!

⎕AV Atomic Vector (yaitu set karakter)

156↓ drop 156 elemen pertama

⎕↑ meminta ndan mengambil banyak elemen dari atas

Adm
sumber
5

Python 2 , 25 byte

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

Fungsi yang tidak disebutkan namanya menerima integer di [1,10] yang mengembalikan string operator biner byte tunggal.

Cobalah online!

Operator:

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

Jika hanya kata kunci aktual yang diizinkan: 40 byte

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

Fungsi yang tidak disebutkan namanya menerima bilangan bulat di [1,10] yang mengembalikan daftar string.

Cobalah online!

Kode harus cukup mudah - itu mendefinisikan fungsi mengambil satu argumen,, nmenggunakan lambda n:...yang mengembalikan pertama n( ...[:n]) dari kata kunci yang dikenal menggunakan perpustakaan standar keywords.kwlist(bersama dengan teknik golf standar import*).

Jonathan Allan
sumber
titik yang sangat kecil tapi pasti =adalah "Penugasan" seperti =="Tes untuk kesetaraan"
Noodle9
Ups, tangkapan yang bagus, terima kasih @ Noodle9
Jonathan Allan
Suara turun yang aneh! Sunting: Seseorang memutuskan bahwa semua jawaban di sini layak untuk dihapuskan. LOL
Jonathan Allan
Tentu saja bukan saya - saya menyukai jawaban Anda dan meningkatkannya! :)
Noodle9
4

Java 10, 83 72 byte (kata kunci)

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

Cobalah online.

Jawaban 83 byte lama:

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

Cobalah online.

Penjelasan:

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

Daftar kata kunci yang tersedia untuk Java 8. Java 10 memiliki kata kunci varselain ini.


Java 8+, 30 byte (operator)

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

Cobalah online.

Kevin Cruijssen
sumber
3

Jelly , 3 byte

ØAḣ

Tautan monadik yang menerima bilangan bulat dan mengembalikan daftar karakter.

Cobalah online!

Karakter yang dihasilkan adalah semua atom monadik di halaman kode 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)].

Bagaimana?

ØAḣ - Link: integer n (in [1,10])
ØA  - yield uppercase alphabet = ['A','B','C',...,'Z']
  ḣ - head to index n
Jonathan Allan
sumber
Oh - saya melihat seseorang memutuskan untuk memilih SEMUA jawaban; bagaimana olahraga!
Jonathan Allan
Pikirkan jawaban ini juga layak diangkat! :)
Noodle9
3

Arang , 16 byte

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

Sayang sekali tidak ada variabel preset untuk halaman kode sendiri di Charcoal.

Cobalah online.

Penjelasan:

Dapatkan substring dari indeks 0 ke nomor input:

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

String dengan 10 kata kunci:

”yPBG¤T⎚M↶↷J”
Kevin Cruijssen
sumber
Saya berasumsi huruf fullwidth memiliki kode karakter berturut-turut sehingga Anda bisa mencetak yang pertama n, yang dapat saya lakukan dalam 8 byte.
Neil
@Neil Tapi apakah sepuluh karakter berturut-turut digunakan sebagai perintah / operator? The misalnya tidak digunakan sama baik-sekarang, bukan? (Kecuali dalam kombinasi dengan KAatau ⌕A.)
Kevin Cruijssen
Sebenarnya adalah perintah dan operator, tetapi bukan yang baik, karena dapat menyebabkan kebingungan antara Finddan FindAll, tetapi Anda kemudian terjebak lagi pada dan , yang hanya digunakan sebagai pengubah, dan kemudian tidak digunakan sama sekali, yang membatasi Anda. Huruf Yunani, lalu?
Neil
Sudahlah, itu adalah variabel, bukan perintah, kurasa.
Neil
3

Perl 5 -lp , 24 byte

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

Cobalah online!

Mudah untuk memperluas untuk kata kunci yang lebih dan lebih lama, tetapi Anda akan perlu melakukan casing khusus mulai dari 4 huruf karena Anda akan mengalami masalah dengan dump, eval, exit, getcdll ..

Tentu saja hanya mengeluarkan operator dan sinyal saja membosankan tetapi lebih pendek pada 11 byte:

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

Cobalah online!

(Saya melewatkan #karena tidak jelas bagaimana saya harus mengklasifikasikannya dalam konteks tantangan ini)

Ton Hospel
sumber
3

JavaScript (Node.js) , 79 61 byte

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

Cobalah online!

Bagaimana:

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

Jika menggunakan operator diperbolehkan (kemungkinan besar karena mereka sudah memesan kata-kata) maka:

JavaScript (Node.js) , 26 25 byte

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

Cobalah online!

Disimpan 8 byte berkat @Adam dan 1 byte lagi berkat @ l4m2

Bagaimana:

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.
Muhammad Salman
sumber
Oh ya, Lol masih main golf. Terima kasih @ Adám. Menghargai itu.
Muhammad Salman
3
Saya tidak berpikir intadalah "kata pendiam" sesuai definisi dalam tantangan. Anda tentu bisa memberi nama variabel intdalam JavaScript.
kamoroso94
1
Jika saya ingat dengan baik, intdicadangkan sebagai kemungkinan kata kunci di masa depan dengan spesifikasi ECMAScript.
BNilsou
Kenapa substrbukannya slice?
14m2
3

Ruby , 22 byte

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

Cobalah online!

-2 byte terima kasih kepada @ benj2240


sumber
Baik. Akan memperbarui jawaban saya.
String#[]memiliki dua argumen kelebihan yang dapat Anda gunakan untuk -2 byte:[0,n]
benj2240
pbukan kata yang dilindungi undang-undang, &seharusnya berfungsi
Asone Tuhid
@ AsoneTuhid: p digunakan untuk mencetak juga, tetapi Anda benar saya mungkin bisa menggantinya. Terima kasih
@ I'mnoone Ya tapi ini metode, Anda dapat mendefinisikannya kembali dan Anda dapat membuat variabel bernama pyang akan diakses alih-alih memanggil metode tanpa variabel ( p = 1; p p #=> 1)
Asone Tuhid
2

Pyth , 4 byte

>QPG

Cobalah online!

Sayangnya, banyak dari huruf-huruf tersebut adalah variabel ( 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.
Biarawati Bocor
sumber
2

C # .NET, 76 62 byte (kata kunci)

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

Cobalah online.

Jawaban 76 byte lama:

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

Cobalah online.

Penjelasan:

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

Daftar kata kunci yang tersedia di C # .NET.


C # .NET, 30 byte (operator)

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

Cobalah online.

Kevin Cruijssen
sumber
2

Pesona , 52 byte

Ini menampilkan semua kata yang disimpan dalam Mantra.

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

Karena semua kode non-rekursif di Charm mampu sebaris, ini adalah fungsi anonim. Panggil seperti ini:

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

(keluaran [ := :: ", hanya empat kata yang dipesan.)


Memberi fungsi ini nama menambahkan 5 byte:

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

Brain-Flak , 122 120 byte

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

Cobalah online!

Lakukan saja bagian saya untuk mengisi contoh bahasa. Output ()[]<>}{, muncul dari depan untuk angka kurang dari 8.

Jo King
sumber
2

Unary, 6072204020736072426436 378380483266268 byte

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

Terima kasih Jo King untuk pengurangan 99,999993768646738908474177860631%

l4m2
sumber
1
Apakah nomor byte benar?
mdahmoune
@mdahmoune Saya kira begitu
l4m2
!! Sangat besar
mdahmoune
@mdahmoune Sebenarnya cukup ' kecil ' untuk Unary. ;) Jika Anda mencari jawaban Unary atau Bahasa lainnya di sini di PPCG ada beberapa, jauh lebih besar dari ini.
Kevin Cruijssen
Apakah ,[.-]di Bahasa sesuai dengan persyaratan?
l4m2
2

Ruby , 50 49 byte

->n{%w[do if or in end not for def nil and][0,n]}

Cobalah online!

Tidak menggunakan operator apapun ( +, |, dll).

Asone Tuhid
sumber
2

Ruby, 71 68 byte

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

Oke, bukan pendekatan terpendek, tapi terlalu menyenangkan untuk tidak memposting. Secara terprogram menemukan semua string hingga tiga huruf kecil yang tidak dapat ditugaskan. Ada yang akan terjadi tepat 10: ["do", "if", "in", "or", "and", "def", "end", "for", "nil", "not"].

Sunting: Disimpan 3 byte berkat Asone Tuhid.

histokrat
sumber
1
Bagus, Anda dapat menghemat 3 byte dengan menyelamatkan Objectkarena itu adalah kelas superException
Asone Tuhid
2

Japt , 3 byte

Mengembalikan string, dengan setiap karakter individu menjadi nama metode di Japt.

;îC

Cobalah

;Cadalah huruf kecil dan îulangi sampai panjangnya sama dengan input.

Shaggy
sumber
@Downvoter, Anda lupa memberikan komentar! : \
Shaggy
Tampaknya seseorang telah memilih semua jawaban: /
mdahmoune
2

Ayam , 7 byte

chicken

Bukan jawaban yang serius. Tetapi harus ada di sini.

jimmy23013
sumber
2

R , 76 62 60 57 byte

12 byte disimpan berkat MickyT

5 byte disimpan berkat snoram

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

Cobalah online!

Tidak ada banyak kata yang dilindungi undang - undang di R tetapi ini adalah yang terpendek untuk disandikan. Hanya ada 9 di sini, tetapi jika input dari 10diberikan, nilai yang hilang NAditambahkan ke akhir daftar dan dicetak.

Giuseppe
sumber
Beberapa penghematan kecil cepat
MickyT
@MickyT terima kasih! Menyadari bahwa aku bisa menyimpan "NaN"sebagai 0/0atau NaNjuga untuk pasangan byte lain.
Giuseppe
ganti 1/0,0/0dengan 1:0/0.
snoram
2
@snoram ah, bagus sekali! Dan selamat datang di PPCG! Saya menantikan jawaban pertama Anda di sini! Lihat tips untuk bermain golf di R dan jangan ragu untuk melakukan ping ke saya di chat! :-)
Giuseppe
Terima kasih! @Giuseppe btw. 1[1:2]mengembalikan [1] 1 NA=> Anda dapat melewatkan NAdalam vektor asli ... jika input pengguna adalah 10 maka akan ditambahkan pada akhirnya.
snoram
1

Spasi , 84 byte

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

Huruf S(spasi), T(tab), dan N(baris baru) ditambahkan hanya sebagai penyorotan.
[..._some_action]ditambahkan sebagai penjelasan saja.

Spasi hanya berisi tiga 'kata kunci' yang valid: spasi, tab, dan baris baru.

Penjelasan dalam pseudo-code:

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

Contoh berjalan:

Memasukkan: 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

Program berhenti dengan kesalahan: Tidak ada jalan keluar yang ditentukan.
Cobalah secara online (hanya dengan spasi, tab, dan baris baru).
Menghasilkan satu ruang.

Memasukkan: 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

Program berhenti dengan kesalahan: Tidak ada jalan keluar yang ditentukan.
Cobalah secara online (hanya dengan spasi, tab, dan baris baru).
Menghasilkan spasi, diikuti oleh tab.

Input: 3(atau lebih tinggi)

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

Program berhenti dengan kesalahan: Tidak ada jalan keluar yang ditentukan.
Cobalah secara online (hanya dengan spasi, tab, dan baris baru).
Menghasilkan spasi, diikuti oleh tab, diikuti oleh baris baru.

Kevin Cruijssen
sumber
1

Brain-Flak , 118 byte

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

Cobalah online!

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

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

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

# Display alternate stack
<>
James
sumber
Ini mencetak byte nol ekstra untuk 9 dan 10
Jo King
1

05AB1E , 2 byte

Cobalah online!


Setiap huruf alfabet adalah perintah di 05AB1E.

Yang dilakukan adalah mencetak Nhuruf pertama dari alfabet.

Guci Gurita Ajaib
sumber
1

> <> , 11 10 9 byte

1-:n:0=?;

Cobalah online!

Ternyata solusi yang paling sederhana adalah yang terbaik. Ini menghasilkan n angka pertama, mulai dari 0.

Solusi 10 byte lama

"'r{$[>o<3

Cobalah online!

Beberapa alternatif 10 byte:

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

Haskell , 22 byte

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

Cobalah online!

Terima kasih kepada @Angs karena menangkap kesalahan kata kunci.

Saya merasa ini bisa lebih pendek dengan membuat string alih-alih mendefinisikannya secara eksplisit, tetapi saya tidak dapat menemukan kisaran 10 karakter ASCII berturut-turut yang merupakan kata kunci Haskell (saya menemukan beberapa yang dekat, jika Anda menghitung kata kunci ekstensi bahasa). Jika ada, Anda bisa menguranginya menjadi 15 byte dengan ini, ganti %dengan karakter awal:

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

Tanpa kata kunci simbolis:

Haskell , 58 byte

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

Cobalah online!

pengguna9549915
sumber
!tidak dicadangkan, misalnya let a!b=a+bbaik
Angs
Ups, Anda benar. Memperbaiki kedua bagian, karena asjuga merupakan pengidentifikasi yang valid.
user9549915
.tidak dicadangkan juga - tidak ada operator lain di pembuka seperti +dll - lihat ini
Angs
1

C (gcc) , 62 60 byte

-2 Berkat GPS

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

Cobalah online!

Maksud saya ... tidak pernah ada persyaratan untuk benar-benar memisahkan kata kunci.

Jika saya salah membaca - atau Anda lebih tertarik pada sesuatu yang lebih dalam semangat pertanyaan - inilah versi alternatif dengan spasi terpisah:

C (gcc) , 69 byte

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

Cobalah online!

gastropner
sumber
Apakah Anda memerlukan dua spasi setelahnya do?
Jo King
@ JoKing Ya, karakter sampah bisa ditulis.
gastropner
Anda dapat memangkas spasi setelah dojika Anda menggunakan fungsi output string. 69 byte: Tio
GPS
1

Taksi, 509 byte

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

Ini mengambil string hardcoded di bagian atas, dan mencetak "n" karakter dari itu, dan kemudian kesalahan dengan "kesalahan: tidak ada penumpang keluar yang ditemukan".

String berisi:

  1. [dan ], karakter yang digunakan untuk menyatakan rencana
  2. a digunakan dalam sintaks "Pickup a passenger ...".
  3. Karakter spasi, yang diperlukan untuk memisahkan potongan sintaks
  4. ldan r, kependekan dari "kiri" dan "kanan", digunakan untuk memberi tahu pengemudi ke arah mana harus berbelok.
  5. n, s, e, Dan w, empat arah.

Saya percaya semua itu dihitung sebagai satu kata kunci karakter. Tidak Disatukan:

"[]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".
pppery
sumber
1

J , 15 byte

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

Cobalah online!

Memberikan array string A.ke J..

Kata-kata putus-putus dalam J bertindak sebagai built-in (seperti a.atau A.) atau struktur kontrol (seperti if.atau do.), atau hanya membuang kesalahan ejaan. Tak satu pun dari mereka dapat digunakan sebagai pengidentifikasi.

Kurang menarik, 15 byte

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

Cobalah online!

Memberikan beberapa dari 10 kata kerja satu byte.

Bubbler
sumber
1

Bash dan shell menggunakan 20 byte

compgen -b|head -$1

Anda dapat menyimpannya dalam file dengan menjalankan izin (builtin) dan menjalankannya di bawah bash seperti ini:

$ ./builtins 5
 .
 : 
 [
 alias 
 bg  

Menghasilkan N bash built in pertama.

Jika Anda menjalankan beberapa shell selain bash, Anda memerlukan shebang #! / Bin / bash line di awal file, untuk + 12b

whofferbert
sumber
1

QBasic, 60 byte

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

Jawaban ini sesuai dengan semangat pertanyaan, saya percaya: menghasilkan kata kunci yang dilindungi alfabet dengan spasi di antaranya. Saya tidak berpikir operator simbolis benar-benar dihitung sebagai "kata-kata" di QBasic, tetapi untuk kelengkapannya, inilah jawaban 30 byte menggunakan operator:

INPUT n
?LEFT$("+-*/\^=><?",n)
DLosc
sumber