Ayrılmış bazı kelimeler çıkar


9

Bilgisayar dili için, ayrılmış sözcük, değişken, işlev veya etiketin adı gibi tanımlayıcı olarak kullanılamayan bir sözcüktür. Diğer bilgisayar dilleri için, anahtar kelimeler dil talimatları kümesi olarak düşünülebilir.

Meydan okuma

Bir ve on arasında bir sayı verilmiş olduğu seçilen dilde bir kod, seçtiğiniz dil yazma kullanarak, 1<=n<=10herhangi bir çıkışı nseçilen dilin ayrılmış kelime (anahtar kelimeler).

Ayrıntılı Bilgiler

  • Seçilen dil büyük / küçük harfe duyarlıysa, çıkan anahtar kelimeler de olmalıdır.
  • Seçilen dil büyük / küçük harfe duyarlı değilse, çıkarılan anahtar kelimeler her durumda olabilir.
  • Seçilen dilin 10'dan az anahtar pkelimesi varsa, kod ve narasındaki tüm ayrılmış kelimeleri çıkarmalıdır .p10
  • Mümkünse yanıtta operatörleri anahtar kelime olarak kabul edip etmediğinizi belirtin.

Java için olası örnekler (JDK10)

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

> <> İçin olası örnekler

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

Brain-Flak için olası örnekler

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

kurallar

  • Giriş ve çıkış herhangi bir uygun formatta verilebilir .
  • Geçersiz giriş değerlerini işlemeye gerek yoktur , geçerli girişler şunlardır: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10.
  • Tam bir program veya bir işlev kabul edilebilir. Bir işlev varsa, çıktıyı yazdırmak yerine döndürebilirsiniz.
  • Mümkünse, diğer kişilerin kodunuzu deneyebilmesi için lütfen çevrimiçi test ortamına bir bağlantı ekleyin!
  • Standart boşluklar yasaktır.
  • Bu böylece tüm olağan golf kuralları geçerlidir ve en kısa kod (bayt cinsinden) kazanır.

Yorumlar uzun tartışmalar için değildir; bu sohbet sohbete taşındı .
Mego

2
continue this long breakKeşke! Bu yüzden SE'deyim!
Stan Strum

tamsayılar saklıdır ama sanırım bu bir boşluk.
snoram

Yanıtlar:


7

APL (Dyalog Unicode) , 9 bayt SBCS

Tam program. Stdin'i soruyor n(aslında 0-29 aralığında çalışıyor). APL anahtar sözcükleri tek karakter sembolleridir, bu nedenle nsemboller stdout'a yazdırılır .

⎕↑156↓⎕AV

Çevrimiçi deneyin!

⎕AV Atomik Vektör (yani karakter seti)

156↓ ilk 156 öğeyi bırak

⎕↑ istemek nve yukarıdan o kadar çok öğe almak


5

Python 2 , 25 bayt

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

[1,10] 'da bir tek baytlık ikili işleç dizesi döndüren bir tamsayıyı kabul eden adsız bir işlev.

Çevrimiçi deneyin!

Operatörler:

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

Yalnızca gerçek anahtar kelimelere izin verilirse: 40 bayt

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

[1,10] 'da bir dize listesi döndüren bir tamsayıyı kabul eden adsız bir işlev.

Çevrimiçi deneyin!

Kod oldukça basit olmalıdır - bu, tek bir argüman alacak bir işlevi tanımlar nkullanılarak, lambda n:...birinci döndüren n( ...[:n]) standart kütüphane en kullanılarak bilinen anahtar kelimelerin keywords.kwlist(standart golf tekniğinin birlikte import*).


çok küçük bir nokta ama kesinlikle =" ==Eşitlik Testi " gibi "Atama "
Noodle9

Hata! İyi yakalama, teşekkürler @ Noodle9
Jonathan Allan

Garip aşağı oy! Edit: Birisi burada tüm cevaplar bir aşağı oy hak karar verdi. LOL
Jonathan Allan

Kesinlikle ben değildim - Cevabını beğendim ve cevap verdim! :)
Erişte9

4

Java 10, 83 72 bayt (anahtar kelimeler)

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

Çevrimiçi deneyin.

Eski 83 bayt cevap:

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

Çevrimiçi deneyin.

Açıklama:

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 için kullanılabilir anahtar kelimelerin listesi. Java 10 varbunlara ek olarak anahtar kelimeye sahiptir .


Java 8+, 30 bayt (işleçler)

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

Çevrimiçi deneyin.


3

Jöle , 3 bayt

ØAḣ

Bir tamsayıyı kabul eden ve bir karakter listesi döndüren monadik bir bağlantı.

Çevrimiçi deneyin!

Ortaya çıkan Karakterlerin hepsi monadic olan atomlar Jelly içinde kod sayfası :

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)].

Nasıl?

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

Oh - görüyorum ki birisi TÜM cevapları aşağı oylamaya karar verdi; ne kadar spor!
Jonathan Allan

Bu cevabın da yükseltilmiş bir hak olduğunu düşünün! :)
Erişte9

3

Kömür , 16 bayt

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

Kömürdeki kendi kod sayfası için önceden ayarlanmış bir değişken çok kötü .

Çevrimiçi deneyin.

Açıklama:

0 dizininden giriş numarasına bir alt dize alın:

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

10 anahtar kelimeli dize:

”yPBG¤T⎚M↶↷J”

Tam genişlikteki harflerin ardışık karakter kodlarına sahip olduğunu varsayıyorum, böylece sadece n8 baytta yapabileceğim ilk harfleri yazdırabilirsiniz .
Neil

@Neil Ama bu ardışık karakterlerden on tanesi komut / operatör olarak kullanılıyor mu? Örneğin artık tüm sağda kullanılmaz, değil mi? ( KAVeya ile birlikte hariç ⌕A)
Kevin Cruijssen

Aslında bir komut ve operatördür, ancak iyi değildir, Findve arasında karışıklığa neden olabilir FindAll, ancak daha sonra ve yalnızca değiştirici olarak kullanılır ve daha sonra hiç kullanılmayan, sizi sınırlayan bir şekilde tekrar takılırsınız . Yunan harfleri?
Neil

Boş ver, bunlar değişkenler, komutlar değil sanırım.
Neil

3

Perl 5 -lp , 24 bayt

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

Çevrimiçi deneyin!

Kolay daha uzun anahtar kelimelere uzatmak, ancak sorun haline çalışacağını çünkü 4 harften başlayarak özel kılıfı yapmak gerekir dump, eval, exit, getcvb ..

Tabii ki sadece operatörleri ve sigils çıktıları sıkıcı ama 11 baytta daha kısa:

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

Çevrimiçi deneyin!

( #Bu zorluk bağlamında nasıl sınıflandırmam gerektiği belirsiz olduğu için atladım)


3

JavaScript (Node.js) , 79 61 bayt

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

Çevrimiçi deneyin!

Nasıl :

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

İşleçleri kullanmaya izin veriliyorsa (büyük olasılıkla sözcükler ayrıldığından beri olacaktır),

JavaScript (Node.js) , 26 25 bayt

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

Çevrimiçi deneyin!

@Adam sayesinde 8 bayt ve @ l4m2 sayesinde 1 bayt tasarruf edildi

Nasıl :

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.


Oh evet, Lol hala golf oynuyor. Teşekkürler @ Adám. Teşekkür ederim.
Muhammed Salman

3
intMeydan okumadaki tanıma göre "ayrılmış bir kelime" olduğunu düşünmüyorum . intJavaScript'te bir değişkeni kesinlikle adlandırabilirsiniz .
kamoroso94

1
İyi hatırlıyorsam, intgelecekteki bir anahtar kelime olarak ECMAScript belirtimi ile ayrılmıştır.
BNilsou

Neden substryerine slice?
l4m2

3

Ruby , 22 bayt

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

Çevrimiçi deneyin!

@ Benj2240 sayesinde -2 bayt


Tamam. Cevabımı güncelleyeceğim.

String#[]-2 bayt için kullanabileceğiniz iki argümanlı bir aşırı yükleme var:[0,n]
benj2240

payrılmış bir kelime değil, &çalışması gerekir
Asone Tuhid

@AsoneTuhid: p baskı için de kullanılıyor, ama haklısın muhtemelen değiştirebilirim. Teşekkürler

@ I'mnoone Evet ama bu bir yöntem, onu yeniden tanımlayabilir ve pyöntemi değişkensiz çağırmak yerine erişilecek adlı bir değişken oluşturabilirsiniz ( p = 1; p p #=> 1)
Asone Tuhid

2

Pyth , 4 bayt

>QPG

Çevrimiçi deneyin!

Ne yazık ki, harflerin çoğu değişkenlerdir ( 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 bayt (anahtar kelimeler)

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

Çevrimiçi deneyin.

Eski 76 bayt cevap:

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

Çevrimiçi deneyin.

Açıklama:

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'te kullanılabilir anahtar kelimelerin listesi.


C # .NET, 30 bayt (işleçler)

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

Çevrimiçi deneyin.


2

Cazibe , 52 bayt

Bu, Charm'daki tüm ayrılmış sözcüklerin çıktısını verir .

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

Charm'daki tüm özyinelemeli kod satır içi olduğundan, bu anonim bir işlevdir. Bu şekilde arayın:

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

(çıktılar [ := :: ", sadece dört ayrılmış kelime.)


Bu işleve bir ad vermek 5 bayt ekler:

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

2

Brain-Flak , 122 120 bayt

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

Çevrimiçi deneyin!

Sadece örnek dilleri doldurmak için üzerime düşeni yapıyorum. Çıkışlar ()[]<>}{, 8'den küçük sayılar için öne doğru patlar.


2

Tekli, 6072204020736072426436 378380483266268 bayt

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

99.999993768646738908474177860631% azalması için teşekkür ederiz Jo King


1
Bayt sayısı doğru mu?
mdahmoune

@mdahmoune Sanırım öyle
l4m2

!! Çok büyük
mdahmoune

@mdahmoune Aslında Unary için oldukça ' küçük '. ;) PPCG'de diğer Unary veya Lenguage cevaplarını ararsanız, bundan çok daha büyüktür.
Kevin Cruijssen

Mu ,[.-]oranlarda konuşma gerekliliğini sığar?
l4m2


2

Yakut, 71 68 bayt

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

Tamam, en kısa yaklaşım değil, posta göndermemek çok eğlenceli. Programlı olarak, atanamayacak üç küçük harfe kadar tüm dizeleri bulur. Tam olarak 10 oluyor ["do", "if", "in", "or", "and", "def", "end", "for", "nil", "not"].

Düzenleme: Asone Tuhid sayesinde 3 bayt kaydedildi.


1
Güzel, bir süper sınıf olduğu için kurtararak 3 bayt kaydedebilirsinizObjectException
Asone Tuhid

2

Japt , 3 bayt

Her karakter Japt'te bir yöntem adı olacak şekilde bir dize döndürür.

;îC

Dene

;Cküçük harfli alfabedir ve îuzunluğu girişe eşit olana kadar tekrarlar.


@Downvoter, yorum bırakmayı unuttun! : \
Shaggy

Birisi tüm cevapları aşağı
oyladı


2

R , 76 62 60 57 bayt

MickyT sayesinde 12 bayt kaydedildi

Snoram sayesinde 5 bayt kaydedildi

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

Çevrimiçi deneyin!

R'de çok fazla Ayrılmış kelime yok, ancak bunlar kodlanacak en kısa kelimeler arasında . Burada sadece 9 tane vardır, ancak bir giriş 10verilirse, NAlistenin sonuna eksik bir değer eklenir ve yazdırılır.


Biraz hızlı tasarruf
MickyT

@MickyT teşekkürler! Ben depolayabilir Gerçekleşen "NaN"olarak 0/0veya NaNbaşka bir çift bayt için de.
Giuseppe

yerine 1/0,0/0sahip 1:0/0.
snoram

2
@snoram ah, mükemmel! Ve PPCG'ye hoş geldiniz! Burada ilk cevabınızı bekliyorum! R'de golf için ipuçlarına bir göz atın ve sohbet ederken bana ping atmaktan çekinmeyin! :-)
Giuseppe

Teşekkürler! @Giuseppe btw. 1[1:2]return [1] 1 NA=> NAorijinal vektörde atlayabilirsiniz ... kullanıcı girişi 10 ise, sonuna eklenir.
snoram


1

Boşluk , 84 bayt

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

Harfler S(boşluk), T(sekme) ve N(yeni satır) yalnızca vurgulama olarak eklendi.
[..._some_action]yalnızca açıklama olarak eklendi.

Boşluk yalnızca üç geçerli 'anahtar kelime' içerir: boşluklar, sekmeler ve yeni satırlar.

Sahte kodda açıklama:

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

Örnek çalıştırmalar:

Giriş: 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 bir hatayla duruyor: Çıkış tanımlanmadı.
Çevrimiçi deneyin (yalnızca ham alanlar, sekmeler ve yeni satırlarla).
Tek bir boşluk çıktılar.

Giriş: 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 bir hatayla duruyor: Çıkış tanımlanmadı.
Çevrimiçi deneyin (yalnızca ham alanlar, sekmeler ve yeni satırlarla).
Bir boşluk ve ardından bir sekme çıkarır.

Giriş: 3(veya üstü)

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 bir hatayla duruyor: Çıkış tanımlanmadı.
Çevrimiçi deneyin (yalnızca ham alanlar, sekmeler ve yeni satırlarla).
Bir boşluk ve ardından bir sekme ve ardından yeni bir satır verir.


1

Brain-Flak , 118 bayt

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

Çevrimiçi deneyin!

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

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

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

# Display alternate stack
<>

Bu, 9 ve 10 için ekstra boş bayt yazdırır
Jo King



1

Haskell , 22 bayt

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

Çevrimiçi deneyin!

@Angs'a anahtar kelime hatalarını yakaladıkları için teşekkürler.

Bu açıkça tanımlamak yerine dize oluşturarak daha kısa olabilir gibi hissettim, ama Haskell anahtar kelimeler olan 10 ardışık ASCII karakter bir dizi bulamadık (Ben dil uzatma anahtar kelimeleri sayarsanız, yakın olan bazı buldum). Bir tane varsa, bunu %başlangıç ​​karakteriyle değiştirerek 15 bayta düşürebilirsiniz :

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

Sembolik anahtar kelimeler olmadan:

Haskell , 58 bayt

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

Çevrimiçi deneyin!


!ayrılmış değil, örneğin let a!b=a+biyi
Angs

Hata! Haklısın. asGeçerli bir tanımlayıcı olduğundan her iki parça da düzeltildi .
user9549915

.ya da rezerve değil - +vb gibi prelude diğer operatörlerin hiçbiri - bunu görmek
Angs

1

C (gcc) , 62 60 bayt

-2 GPS sayesinde

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

Çevrimiçi deneyin!

Yani ... anahtar kelimeleri gerçekten ayırmak için hiçbir gereklilik yoktu.

Yanlış okuduğumda - veya sorunun ruhuyla daha fazla ilgileniyorsanız - işte boşlukları ayıran alternatif bir sürüm:

C (gcc) , 69 bayt

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

Çevrimiçi deneyin!


Sonra iki boşluğa ihtiyacınız var domı?
Jo King

@JoKing Evet, aksi takdirde çöp karakterler yazılabilir.
gastropner

doDize çıktısı işlevlerini kullanırsanız, daha sonra boşlukları kesebilirsiniz . 69 bayt: Tio
GPS


1

Taksi, 509 bayt

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

Bu üstte sabit kodlu bir dize alır ve ondan "n" karakterleri yazdırır ve sonra "hata: giden yolcu bulunamadı" hatalarını verir.

Dize şunları içerir:

  1. [ ve ] bir plan beyan eden karakterler
  2. a "Yolcuyu topla ..." sözdiziminde kullanılır.
  3. Sözdizimi parçalarını ayırmak için gereken boşluk karakteri
  4. l ve r kısa çevirmek yolu sürücüsü anlatırdı, "sol" ve "sağ" için.
  5. n, s, eVew , dört yön.

Tüm bunların bir karakter anahtar kelime olarak sayıldığına inanıyorum. 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 bayt

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

Çevrimiçi deneyin!

Dize dizisi verir A.içinJ. .

J'deki noktalı kelimeler yerleşik ( a.veya A.) gibi veya kontrol yapıları ( if.veyado. ), ya da sadece atış yazım hatası. Hiçbiri tanımlayıcı olarak kullanılamaz.

Daha az ilginç, 15 bayt

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

Çevrimiçi deneyin!

10 tek baytlık fiillerin bazılarını verir.


1

Bash ve shell 20 bayt kullanır

compgen -b|head -$1

Bunu yürütme izinlerine (yerleşik) sahip bir dosyaya kaydedebilir ve bash altında şu şekilde çalıştırabilirsiniz:

$ ./builtins 5
 .
 : 
 [
 alias 
 bg  

İlk N bash yapılı çıkışı verir.

Eğer bash dışında bir kabuk çalıştırıyorsanız, dosyanın başlangıcında + 12b için #! / Bin / bash satırına ihtiyacınız olacaktır.


1

QBasic, 60 bayt

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

Bu cevap, sorunun ruhuna en uygun olduğuna inanıyorum: aralarındaki boşluklarla alfabetik ayrılmış anahtar kelimeler çıktılamak. Sembolik operatörlerin QBasic'te gerçekten "kelimeler" olarak sayıldığını sanmıyorum, ancak tamlık için, operatörleri kullanan 30 baytlık bir cevap :

INPUT n
?LEFT$("+-*/\^=><?",n)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.