Wypisz niektóre zastrzeżone słowa

9

W przypadku języka komputerowego słowo zastrzeżone jest słowem, którego nie można użyć jako identyfikatora, takiego jak nazwa zmiennej, funkcji lub etykiety. W przypadku innych języków komputerowych słowa kluczowe można traktować jako zestaw instrukcji językowych.

Wyzwanie

Używając wybranego języka, napisz kod w wybranym języku, który ma liczbę od jednego do dziesięciu 1<=n<=10, wyświetla wszystkie nzastrzeżone słowa (słowa kluczowe) wybranego języka.

Specyfika

  • Jeśli w wybranym języku rozróżniana jest wielkość liter, muszą być również wyprowadzane słowa kluczowe.
  • Jeśli w wybranym języku nie jest rozróżniana wielkość liter, w każdym przypadku mogą występować słowa kluczowe.
  • Jeśli wybrany język zawiera mniej niż 10 słów kluczowych p, kod musi wypisać wszystkie słowa zastrzeżone dla dowolnego nmiędzy pi 10.
  • Jeśli to możliwe, określ w odpowiedzi, czy traktujesz operatorów jako słowa kluczowe, czy nie.

Możliwe próbki dla Java (JDK10)

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

Możliwe próbki dla> <>

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

Możliwe próbki dla Brain-Flak

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

Zasady

  • Dane wejściowe i wyjściowe można podawać w dowolnym dogodnym formacie .
  • Nie trzeba obsługiwać nieprawidłowych wartości wejściowych , prawidłowe dane to: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10.
  • Dopuszczalny jest pełny program lub funkcja. Jeśli funkcja, możesz zwrócić dane wyjściowe zamiast je drukować.
  • Jeśli to możliwe, dołącz link do środowiska testowego online, aby inne osoby mogły wypróbować Twój kod!
  • Standardowe luki są zabronione.
  • To jest więc obowiązują wszystkie zwykłe zasady gry w golfa, a wygrywa najkrótszy kod (w bajtach).
mdahmoune
źródło
Komentarze nie są przeznaczone do rozszerzonej dyskusji; ta rozmowa została przeniesiona do czatu .
Mego
2
continue this long breakChciałbym! Właśnie dlatego jestem na SE!
Stan Strum,
liczby całkowite są zastrzeżone, ale sądzę, że byłaby to luka.
snoram

Odpowiedzi:

7

APL (Dyalog Unicode) , 9 bajtów SBCS

Pełny program Monituje o standardowe wejście n(właściwie działa w zakresie 0–29). Słowa kluczowe APL są symbolami jednoznakowymi, więc wypisuje nsymbole na standardowe wyjście.

⎕↑156↓⎕AV

Wypróbuj online!

⎕AV wektor atomowy (tj. zestaw znaków)

156↓ upuść pierwsze 156 elementów

⎕↑ monituj ni weź tyle elementów z powyższego

Adám
źródło
5

Python 2 , 25 bajtów

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

Nienazwana funkcja akceptująca liczbę całkowitą w [1,10], która zwraca ciąg jednobajtowych operatorów binarnych.

Wypróbuj online!

Operatorzy:

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

Jeśli dozwolone są tylko rzeczywiste słowa kluczowe: 40 bajtów

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

Nienazwana funkcja akceptująca liczbę całkowitą w [1,10], która zwraca listę ciągów znaków.

Wypróbuj online!

Kod powinien być dość prosty - definiuje funkcję przyjmującą jeden argument, nza pomocą lambda n:...której zwraca pierwszy n( ...[:n]) ze znanych słów kluczowych przy użyciu standardowej biblioteki keywords.kwlist(wraz ze standardową techniką golfa import*).

Jonathan Allan
źródło
bardzo drobna kwestia, ale z pewnością =jest to „Zadanie”, podobnie jak ==„Test na równość”
Noodle9
Ups, dobry chwyt, dzięki @ Noodle9
Jonathan Allan
Dziwne głosowanie w dół! Edycja: Ktoś zdecydował, że wszystkie odpowiedzi tutaj zasługują na głosowanie w dół. LOL
Jonathan Allan
Na pewno nie byłem ja - podobała mi się twoja odpowiedź i głosowałem za nią! :)
Noodle9
4

Java 10, 83 72 bajty (słowa kluczowe)

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

Wypróbuj online.

Odpowiedź na stare 83 bajty:

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

Wypróbuj online.

Wyjaśnienie:

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

Lista dostępnych słów kluczowych dla Java 8. Java 10 ma vardodatkowo słowo kluczowe .


Java 8+, 30 bajtów (operatory)

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

Wypróbuj online.

Kevin Cruijssen
źródło
3

Galaretka , 3 bajty

ØAḣ

Monadyczny link akceptujący liczbę całkowitą i zwracający listę znaków.

Wypróbuj online!

Powstałe znaki to monadyczne atomy na stronie kodowej 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)].

W jaki sposób?

ØAḣ - Link: integer n (in [1,10])
ØA  - yield uppercase alphabet = ['A','B','C',...,'Z']
  ḣ - head to index n
Jonathan Allan
źródło
Och - widzę, że ktoś postanowił obniżyć głos WSZYSTKIE odpowiedzi; jak sportowo!
Jonathan Allan
Pomyśl, że ta odpowiedź również zasługuje na uznanie! :)
Noodle9
3

Węgiel drzewny , 16 bajtów

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

Szkoda, że ​​nie ma wstępnie ustawionej zmiennej dla własnej strony kodowej w Charcoal.

Wypróbuj online.

Wyjaśnienie:

Uzyskaj podciąg od indeksu 0 do numeru wejściowego:

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

Ciąg z 10 słowami kluczowymi:

”yPBG¤T⎚M↶↷J”
Kevin Cruijssen
źródło
Zakładam, że litery o pełnej szerokości mają kolejne kody znaków, więc możesz po prostu wydrukować pierwszy nz nich, co mogę zrobić w 8 bajtach.
Neil
@Neil Ale czy dziesięć kolejnych znaków jest używanych jako polecenia / operatory? Na przykład teraz w ogóle się nie używa, prawda? (Z wyjątkiem kombinacji z KAlub ⌕A.)
Kevin Cruijssen
W rzeczywistości jest to polecenie i operator, ale niezbyt dobre, ponieważ może powodować zamieszanie między Findi FindAll, ale wtedy ponownie utkniesz w i , które są używane tylko jako modyfikatory, a następnie nie są używane, co Cię ogranicza. Zatem greckie litery?
Neil
Nieważne, to chyba zmienne, a nie polecenia.
Neil
3

Perl 5 -lp , 24 bajtów

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

Wypróbuj online!

Łatwo rozszerzyć do coraz dłuższych słów kluczowych, ale trzeba będzie zrobić specjalną obudowę zaczynając od 4 liter, ponieważ będzie napotkasz problemy z dump, eval, exit, getcitd ..

Oczywiście wysyłanie operatorów i znaków jest nudne, ale krótsze przy 11 bajtach:

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

Wypróbuj online!

(Pominąłem, #ponieważ nie jest jasne, jak powinienem to sklasyfikować w kontekście tego wyzwania)

Ton Hospel
źródło
3

JavaScript (Node.js) , 79 61 bajtów

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

Wypróbuj online!

W jaki sposób :

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

Jeśli użycie operatorów jest dozwolone (najprawdopodobniej będzie tak, ponieważ są to słowa zastrzeżone), to:

JavaScript (Node.js) , 26 25 bajtów

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

Wypróbuj online!

Zaoszczędzono 8 bajtów dzięki @Adam i 1 dodatkowy bajt dzięki @ l4m2

W jaki sposób :

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
źródło
O tak, Lol wciąż gra w golfa. Dzięki @ Adám. Doceniam to.
Muhammad Salman
3
Nie sądzę, by intbyło to „słowo zastrzeżone” zgodnie z definicją w wyzwaniu. Z pewnością możesz nazwać zmienną intw JavaScript.
kamoroso94
1
O intile dobrze pamiętam, jest zastrzeżone jako możliwe słowo kluczowe według specyfikacji ECMAScript.
BNilsou
Dlaczego substrzamiast slice?
l4m2
3

Ruby , 22 bajty

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

Wypróbuj online!

-2 bajty dzięki @ benj2240


źródło
Ok. Zaktualizuje moją odpowiedź.
String#[]ma przeciążenie dwoma argumentami, którego możesz użyć dla -2 bajtów:[0,n]
benj2240 16.04.18
pnie jest słowem zastrzeżonym, &powinno działać
Asone Tuhid 17.04.18
@AsoneTuhid: p jest również używany do drukowania, ale masz rację, prawdopodobnie mogę go zastąpić. Dzięki
@ I'mnoone Tak, ale jest to metoda, możesz ją przedefiniować i możesz utworzyć zmienną o nazwie, pktóra będzie dostępna zamiast wywoływać metodę bez zmiennych ( p = 1; p p #=> 1)
Asone Tuhid
2

Pyth , 4 bajty

>QPG

Wypróbuj online!

Niestety wiele liter jest zmiennymi ( 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.
Leaky Nun
źródło
2

C # .NET, 76 62 bajtów (słowa kluczowe)

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

Wypróbuj online.

Stara 76 bajtów odpowiedź:

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

Wypróbuj online.

Wyjaśnienie:

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

Lista dostępnych słów kluczowych w języku C # .NET.


C # .NET, 30 bajtów (operatorów)

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

Wypróbuj online.

Kevin Cruijssen
źródło
2

Urok , 52 bajty

Spowoduje to wyświetlenie wszystkich zastrzeżonych słów w Uroku.

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

Ponieważ cały nierekurencyjny kod w Charm jest wbudowany, jest to funkcja anonimowa. Zadzwoń tak:

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

(wyjścia [ := :: ", jedyne cztery zastrzeżone słowa).


Nadanie tej funkcji nazwy dodaje 5 bajtów:

f := " [  := :: \"   " 0 2 copyfrom 3 * substring pstring
Aearnus
źródło
2

Brain-Flak , 122 120 bajtów

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

Wypróbuj online!

Po prostu wykonuję swoją część, aby wypełnić przykładowe języki. Wyjścia ()[]<>}{, wyskakujące z przodu dla liczb mniejszych niż 8.

Jo King
źródło
2

Unary, 6072204020736072426436 378380483266268 bajtów

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

Dziękujemy Jo King za redukcję o 99.999993768646738908474177860631%

l4m2
źródło
1
Czy liczba bajtów jest poprawna?
mdahmoune
@mdahmoune Myślę, że tak
l4m2
!! Jest bardzo duży
mdahmoune,
@mdahmoune To jest naprawdę „ małe ” dla Unary. ;) Jeśli szukasz innych odpowiedzi Unary lub Lenguage tutaj na PPCG, są one o wiele, wiele większe niż to.
Kevin Cruijssen
Czy ,[.-]w Lenguage spełnia to wymaganie?
l4m2
2

Rubinowy , 50 49 bajtów

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

Wypróbuj online!

Nie używając żadnych operatorów ( +, |, itd.).

Asone Tuhid
źródło
2

Rubin, 71 68 bajtów

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

Dobra, nie najkrótsze podejście, ale zbyt zabawne, żeby nie publikować. Programowo znajduje wszystkie ciągi maksymalnie trzech małych liter, do których nie można przypisać. Jest dokładnie 10:["do", "if", "in", "or", "and", "def", "end", "for", "nil", "not"] .

Edycja: Zapisano 3 bajty dzięki Asone Tuhid.

histocrat
źródło
1
Fajnie, możesz uratować 3 bajty ratując, Objectponieważ jest to superklasaException
Asone Tuhid
2

Japt , 3 bajty

Zwraca ciąg znaków, przy czym każdy znak jest nazwą metody w Japt.

;îC

Spróbuj

;Cjest małym alfabetem i îpowtarza go, aż jego długość zrówna się z wartością wejściową.

Kudłaty
źródło
@Downvoter, zapomniałeś zostawić komentarz! : \
Shaggy
Wygląda na to, że ktoś głosował za odrzuceniem wszystkich odpowiedzi: /
mdahmoune
2

Kurczak , 7 bajtów

chicken

Niezbyt poważna odpowiedź. Ale musi tu być.

jimmy23013
źródło
2

R , 76 62 60 57 bajtów

12 bajtów zapisanych dzięki MickyT

5 bajtów zapisanych dzięki snoram

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

Wypróbuj online!

W języku R nie ma wielu słów zastrzeżonych, ale są to jedne z najkrótszych do zakodowania. Jest tu tylko 9, ale jeśli podano dane wejściowe 10, brakująca wartość NAjest dołączana na końcu listy i drukowana.

Giuseppe
źródło
Kilka szybkich małych oszczędności
MickyT
@MickyT dzięki! Zrozumiałem, że mogę przechowywać "NaN"jako 0/0lub NaNrównie dobrze dla innej pary bajtów.
Giuseppe,
wymienić 1/0,0/0z 1:0/0.
snoram
2
@snoram ah, doskonale! Witamy w PPCG! Czekam na twoją pierwszą odpowiedź tutaj! Rzuć okiem na wskazówki dotyczące gry w golfa w R i możesz pingować mnie na czacie! :-)
Giuseppe,
Dzięki! @Giuseppe btw. 1[1:2]return [1] 1 NA=> możesz pominąć NAoryginalny wektor ... jeśli dane wejściowe użytkownika wynoszą 10, zostaną dodane na końcu.
snoram
1

Biała spacja , 84 bajty

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

Dodane litery S(spacja), T(tab) i N(nowa linia) tylko jako wyróżnienia.
[..._some_action]dodano tylko jako wyjaśnienie.

Biała spacja zawiera tylko trzy prawidłowe „słowa kluczowe”: spacje, tabulatory i nowe wiersze.

Objaśnienie w pseudo-kodzie:

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

Przykładowe przebiegi:

Wejście: 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 zatrzymuje się z błędem: nie zdefiniowano wyjścia.
Wypróbuj online (tylko z surowymi spacjami, tabulatorami i nowymi wierszami).
Wyprowadza pojedynczą spację.

Wejście: 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 zatrzymuje się z błędem: nie zdefiniowano wyjścia.
Wypróbuj online (tylko z surowymi spacjami, tabulatorami i nowymi wierszami).
Zwraca spację, a następnie tabulator.

Dane wejściowe: 3(lub wyższe)

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 zatrzymuje się z błędem: nie zdefiniowano wyjścia.
Wypróbuj online (tylko z surowymi spacjami, tabulatorami i nowymi wierszami).
Zwraca spację, tabulator, a następnie nową linię.

Kevin Cruijssen
źródło
1

Brain-Flak , 118 bajtów

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

Wypróbuj online!

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

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

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

# Display alternate stack
<>
James
źródło
Wyświetla dodatkowe bajty zerowe dla 9 i 10
Jo King
1

05AB1E , 2 bajty

Wypróbuj online!


Każda litera alfabetu jest poleceniem w 05AB1E.

Wszystko to powoduje wydrukowanie pierwszych Nliter alfabetu.

Urna Magicznej Ośmiornicy
źródło
1

> <> , 11 10 9 bajtów

1-:n:0=?;

Wypróbuj online!

Okazało się, że najprostsze rozwiązanie było najlepsze. Daje to pierwsze n liczb, zaczynając od 0.

Stare rozwiązania 10-bajtowe

"'r{$[>o<3

Wypróbuj online!

10 alternatywnych bajtów:

  • "':1+{[>o<
  • "r:n[~>o<a
  • "'a{[>o<bc
Jo King
źródło
1

Haskell , 22 bajty

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

Wypróbuj online!

Dzięki @Angs za wyłapywanie błędów słów kluczowych.

Wydawało mi się, że może to być krótsze przez wygenerowanie ciągu zamiast jawnego zdefiniowania go, ale nie mogłem znaleźć zakresu 10 kolejnych znaków ASCII, które są słowami kluczowymi Haskell (znalazłem niektóre, które są bliskie, jeśli policzysz słowa kluczowe rozszerzenia języka). Jeśli istnieje, możesz go zmniejszyć do 15 bajtów, zastępując %go znakiem początkowym:

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

Bez symbolicznych słów kluczowych:

Haskell , 58 bajtów

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

Wypróbuj online!

użytkownik9549915
źródło
!nie jest zarezerwowany, np. let a!b=a+bjest w porządku
Angs
Ups, masz rację. Naprawiono obie części, ponieważ asjest to również prawidłowy identyfikator.
user9549915
.nie jest również zarezerwowany - żaden z innych operatorów w preludium takich jak +etc nie jest - zobacz to
Angs
1

C (gcc) , 62 60 bajtów

-2 dzięki GPS

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

Wypróbuj online!

To znaczy ... nigdy nie było wymogu oddzielenia słów kluczowych.

W przypadku, gdy źle przeczytałem - lub jesteś bardziej zainteresowany czymś więcej w duchu pytania - oto alternatywna wersja z oddzielaniem spacji:

C (gcc) , 69 bajtów

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

Wypróbuj online!

gastropner
źródło
Czy potrzebujesz później dwóch spacji do?
Jo King
@JoKing Tak, w przeciwnym razie można zapisać śmieciowe znaki.
gastropner
Możesz przyciąć spacje później, dojeśli używasz funkcji wyjściowych ciągu. 69 bajtów: Tio
GPS
1

Taxi, 509 bajtów

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

To pobiera zakodowany ciąg u góry i wypisuje z niego znaki „n”, a następnie wyświetla błąd „błąd: nie znaleziono pasażerów wychodzących”.

Ciąg zawiera:

  1. [i ]znaki użyte do ogłoszenia planu
  2. a użyte w składni „Odbierz pasażera ...”.
  3. Znak spacji wymagany do oddzielenia elementów składni
  4. li r, w skrócie „w lewo” i „w prawo”, służyły do ​​informowania kierowcy, w którą stronę skręcić.
  5. n, s, e, I w, cztery kierunki.

Uważam, że wszystkie z nich liczą się jako słowa kluczowe składające się z jednego znaku. Nie golfowany:

"[]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
źródło
1

J , 15 bajtów

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

Wypróbuj online!

Daje tablicę ciągów A.do J..

Kropkowane słowa w J działają jako wbudowane (takie jak a.lub A.) lub struktury kontrolne (takie jak if.lubdo. ) lub po prostu powodują błąd pisowni. Żaden z nich nie może być użyty jako identyfikator.

Mniej interesujące, 15 bajtów

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

Wypróbuj online!

Podaje niektóre z 10 jednobajtowych czasowników.

Bubbler
źródło
1

Bash i shell używają 20 bajtów

compgen -b|head -$1

Możesz zapisać to w pliku z uprawnieniami do wykonywania (wbudowane) i uruchomić go w bash w następujący sposób:

$ ./builtins 5
 .
 : 
 [
 alias 
 bg  

Wyprowadza pierwsze N ​​wbudowane bash.

Jeśli używasz powłoki innej niż bash, będziesz potrzebować linii shebang #! / Bin / bash na początku pliku, dla + 12b

whofferbert
źródło
1

QBasic, 60 bajtów

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

Ta odpowiedź najlepiej pasuje do ducha pytania: generowanie zastrzeżonych słów kluczowych w kolejności alfabetycznej ze spacjami pomiędzy nimi. Nie sądzę, aby operatory symboliczne naprawdę liczyły się jako „słowa” w QBasic, ale dla kompletności, oto 30-bajtowa odpowiedź przy użyciu operatorów:

INPUT n
?LEFT$("+-*/\^=><?",n)
DLosc
źródło