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 n
zastrzeż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 dowolnegon
międzyp
i10
. - 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 golf-golf więc obowiązują wszystkie zwykłe zasady gry w golfa, a wygrywa najkrótszy kod (w bajtach).
code-golf
string
compression
mdahmoune
źródło
źródło
continue this long break
Chciałbym! Właśnie dlatego jestem na SE!Odpowiedzi:
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 wypisujen
symbole na standardowe wyjście.Wypróbuj online!
⎕AV
wektor atomowy (tj. zestaw znaków)156↓
upuść pierwsze 156 elementów⎕↑
monitujn
i weź tyle elementów z powyższegoźródło
Python 2 , 25 bajtów
Nienazwana funkcja akceptująca liczbę całkowitą w [1,10], która zwraca ciąg jednobajtowych operatorów binarnych.
Wypróbuj online!
Operatorzy:
Jeśli dozwolone są tylko rzeczywiste słowa kluczowe: 40 bajtów
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,
n
za pomocąlambda n:...
której zwraca pierwszyn
(...[:n]
) ze znanych słów kluczowych przy użyciu standardowej bibliotekikeywords.kwlist
(wraz ze standardową techniką golfaimport*
).źródło
=
jest to „Zadanie”, podobnie jak==
„Test na równość”Java 10,
8372 bajty (słowa kluczowe)Wypróbuj online.
Odpowiedź na stare 83 bajty:
Wypróbuj online.
Wyjaśnienie:
Lista dostępnych słów kluczowych dla Java 8. Java 10 ma
var
dodatkowo słowo kluczowe .Java 8+, 30 bajtów (operatory)
Wypróbuj online.
źródło
Galaretka , 3 bajty
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 :
W jaki sposób?
źródło
Węgiel drzewny , 16 bajtów
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:
Ciąg z 10 słowami kluczowymi:
źródło
n
z nich, co mogę zrobić w 8 bajtach.A
przykład teraz w ogóle się nie używa, prawda? (Z wyjątkiem kombinacji zKA
lub⌕A
.)A
jest to polecenie i operator, ale niezbyt dobre, ponieważ może powodować zamieszanie międzyFind
iFindAll
, ale wtedy ponownie utkniesz wH
iO
, które są używane tylko jako modyfikatory, a następnieQ
nie są używane, co Cię ogranicza. Zatem greckie litery?Perl 5
-lp
, 24 bajtówWypró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
,getc
itd ..Oczywiście wysyłanie operatorów i znaków jest nudne, ale krótsze przy 11 bajtach:
Wypróbuj online!
(Pominąłem,
#
ponieważ nie jest jasne, jak powinienem to sklasyfikować w kontekście tego wyzwania)źródło
JavaScript (Node.js) ,
7961 bajtówWypróbuj online!
W jaki sposób :
Jeśli użycie operatorów jest dozwolone (najprawdopodobniej będzie tak, ponieważ są to słowa zastrzeżone), to:
JavaScript (Node.js) ,
2625 bajtówWypróbuj online!
Zaoszczędzono 8 bajtów dzięki @Adam i 1 dodatkowy bajt dzięki @ l4m2
W jaki sposób :
źródło
n=>'|/^%+<&*-='.substr(-n)
int
było to „słowo zastrzeżone” zgodnie z definicją w wyzwaniu. Z pewnością możesz nazwać zmiennąint
w JavaScript.int
ile dobrze pamiętam, jest zastrzeżone jako możliwe słowo kluczowe według specyfikacji ECMAScript.substr
zamiastslice
?Ruby , 22 bajty
Wypróbuj online!
-2 bajty dzięki @ benj2240
źródło
String#[]
ma przeciążenie dwoma argumentami, którego możesz użyć dla -2 bajtów:[0,n]
p
nie jest słowem zastrzeżonym,&
powinno działaćp
która będzie dostępna zamiast wywoływać metodę bez zmiennych (p = 1; p p #=> 1
)Pyth , 4 bajty
Wypróbuj online!
Niestety wiele liter jest zmiennymi (
GHJKNQTYZbdkz
).źródło
C # .NET,
7662 bajtów (słowa kluczowe)Wypróbuj online.
Stara 76 bajtów odpowiedź:
Wypróbuj online.
Wyjaśnienie:
Lista dostępnych słów kluczowych w języku C # .NET.
C # .NET, 30 bajtów (operatorów)
Wypróbuj online.
źródło
Urok , 52 bajty
Spowoduje to wyświetlenie wszystkich zastrzeżonych słów w Uroku.
Ponieważ cały nierekurencyjny kod w Charm jest wbudowany, jest to funkcja anonimowa. Zadzwoń tak:
(wyjścia
[ := :: "
, jedyne cztery zastrzeżone słowa).Nadanie tej funkcji nazwy dodaje 5 bajtów:
źródło
Brain-Flak ,
122120 bajtówWypró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.źródło
Unary,
6072204020736072426436378380483266268 bajtówDziękujemy Jo King za redukcję o 99.999993768646738908474177860631%
źródło
,[.-]
w Lenguage spełnia to wymaganie?Rubinowy ,
5049 bajtówWypróbuj online!
Nie używając żadnych operatorów (
+
,|
, itd.).źródło
Rubin,
7168 bajtówDobra, 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.
źródło
Object
ponieważ jest to superklasaException
Japt , 3 bajty
Zwraca ciąg znaków, przy czym każdy znak jest nazwą metody w Japt.
Spróbuj
;C
jest małym alfabetem iî
powtarza go, aż jego długość zrówna się z wartością wejściową.źródło
Kurczak , 7 bajtów
Niezbyt poważna odpowiedź. Ale musi tu być.
źródło
R ,
76626057 bajtów12 bajtów zapisanych dzięki MickyT
5 bajtów zapisanych dzięki snoram
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śćNA
jest dołączana na końcu listy i drukowana.źródło
"NaN"
jako0/0
lubNaN
równie dobrze dla innej pary bajtów.1/0,0/0
z1:0/0
.1[1:2]
return[1] 1 NA
=> możesz pominąćNA
oryginalny wektor ... jeśli dane wejściowe użytkownika wynoszą 10, zostaną dodane na końcu.Python 2 , 64 bajty
Wypróbuj online!
Python 2 , 57 bajtów (z operatorami)
Wypróbuj online!
operatorzy słów kluczowych
źródło
Biała spacja , 84 bajty
Dodane litery
S
(spacja),T
(tab) iN
(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:
Przykładowe przebiegi:
Wejście:
1
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
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)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ę.
źródło
Brain-Flak , 118 bajtów
Wypróbuj online!
źródło
05AB1E , 2 bajty
Wypróbuj online!
Każda litera alfabetu jest poleceniem w 05AB1E.
Wszystko to powoduje wydrukowanie pierwszych
N
liter alfabetu.źródło
> <> ,
11 109 bajtówWypró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
Wypróbuj online!
10 alternatywnych bajtów:
"':1+{[>o<
"r:n[~>o<a
"'a{[>o<bc
źródło
Haskell , 22 bajty
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:Bez symbolicznych słów kluczowych:
Haskell , 58 bajtów
Wypróbuj online!
źródło
!
nie jest zarezerwowany, np.let a!b=a+b
jest w porządkuas
jest to również prawidłowy identyfikator..
nie jest również zarezerwowany - żaden z innych operatorów w preludium takich jak+
etc nie jest - zobacz toC (gcc) ,
6260 bajtów-2 dzięki GPS
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
Wypróbuj online!
źródło
do
?do
jeśli używasz funkcji wyjściowych ciągu. 69 bajtów: TioTcl , 37 bajtów
Wypróbuj online!
źródło
Taxi, 509 bajtów
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:
[
i]
znaki użyte do ogłoszenia planua
użyte w składni „Odbierz pasażera ...”.l
ir
, w skrócie „w lewo” i „w prawo”, służyły do informowania kierowcy, w którą stronę skręcić.n
,s
,e
, Iw
, cztery kierunki.Uważam, że wszystkie z nich liczą się jako słowa kluczowe składające się z jednego znaku. Nie golfowany:
źródło
J , 15 bajtów
Wypróbuj online!
Daje tablicę ciągów
A.
doJ.
.Kropkowane słowa w J działają jako wbudowane (takie jak
a.
lubA.
) lub struktury kontrolne (takie jakif.
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.
źródło
Bash i shell używają 20 bajtów
Możesz zapisać to w pliku z uprawnieniami do wykonywania (wbudowane) i uruchomić go w bash w następujący sposób:
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
źródło
QBasic, 60 bajtów
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:
źródło