Pour un langage informatique, un mot réservé est un mot qui ne peut pas être utilisé comme identifiant, comme le nom d'une variable, d'une fonction ou d'une étiquette. Pour les autres langages informatiques, les mots clés peuvent être considérés comme l'ensemble des instructions de langue.
Défi
En utilisant la langue de votre choix, écrivez un code dans la langue choisie qui donne un nombre entre un et dix 1<=n<=10
, sort tous les n
mots réservés (mots-clés) de la langue choisie.
Détails
- Si la langue choisie est sensible à la casse, les mots clés générés doivent l'être également.
- Si la langue choisie n'est pas sensible à la casse, les mots clés générés peuvent l'être dans tous les cas.
- Si la langue choisie a moins de 10 mots-clés disant
p
, le code doit sortir tous les mots réservés pour toutn
entrep
et10
. - Si possible, spécifiez dans la réponse si vous considérez les opérateurs comme des mots clés ou non.
Exemples possibles pour Java (JDK10)
n=1 --> true
n=3 --> try new interface
n=4 --> continue this long break
Échantillons possibles pour> <>
n=1 --> >
n=3 --> > < ^
n=4 --> > < \ /
Échantillons possibles pour Brain-Flak
n=1 --> (
n=3 --> ( ) [ ]
n=9 --> ( ) [ ] { } < >
Règles
- L'entrée et la sortie peuvent être données dans n'importe quel format pratique .
- Pas besoin de gérer des valeurs d'entrée non valides, les entrées valides sont: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10.
- Un programme complet ou une fonction sont acceptables. S'il s'agit d'une fonction, vous pouvez renvoyer la sortie plutôt que de l'imprimer.
- Si possible, veuillez inclure un lien vers un environnement de test en ligne afin que d'autres personnes puissent essayer votre code!
- Les failles standard sont interdites.
- Il s'agit de code-golf, donc toutes les règles de golf habituelles s'appliquent et le code le plus court (en octets) l'emporte.
code-golf
string
compression
mdahmoune
la source
la source
continue this long break
Je souhaite que! Voilà pourquoi je suis sur SE!Réponses:
APL (Dyalog Unicode) , 9 octets SBCS
Programme complet. Invite stdin pour
n
(fonctionne en fait pour la plage 0–29). Les mots clés APL sont des symboles à caractère unique, donc cela imprime lesn
symboles sur la sortie standard.Essayez-le en ligne!
⎕AV
le vecteur atomique (c'est-à-dire le jeu de caractères)156↓
déposer les 156 premiers éléments⎕↑
demandern
et prendre autant d'éléments de ce qui précèdela source
Python 2 , 25 octets
Une fonction sans nom acceptant un entier dans [1,10] qui retourne une chaîne d'opérateurs binaires à un octet.
Essayez-le en ligne!
Les opérateurs:
Si seuls les mots clés réels sont autorisés: 40 octets
Une fonction sans nom acceptant un entier dans [1,10] qui retourne une liste de chaînes.
Essayez-le en ligne!
Le code devrait être assez simple - il définit une fonction prenant un argument
n
,,lambda n:...
qui utilise qui renvoie le premiern
(...[:n]
) des mots clés connus en utilisant la bibliothèque standardkeywords.kwlist
(avec la technique de golf standard deimport*
).la source
=
est sûrement "Assignment" tout comme==
"Test for d'égalité"Java 10,
8372 octets (mots clés)Essayez-le en ligne.
Ancienne réponse de 83 octets:
Essayez-le en ligne.
Explication:
Liste des mots clés disponibles pour Java 8. Java 10 a le mot clé
var
en plus de ceux-ci.Java 8+, 30 octets (opérateurs)
Essayez-le en ligne.
la source
Gelée , 3 octets
Un lien monadique acceptant un entier et renvoyant une liste de caractères.
Essayez-le en ligne!
Les caractères résultants sont tous des atomes monadiques dans la page de codes de Jelly :
Comment?
la source
Fusain , 16 octets
Dommage qu'il n'y ait pas de variable prédéfinie pour sa propre page de code dans Charcoal.
Essayez-le en ligne.
Explication:
Obtenez une sous-chaîne de l'index 0 au numéro d'entrée:
La chaîne avec 10 mots clés:
la source
n
de ceux-ci, ce que je peux faire en 8 octets.A
par exemple n'est pas utilisé du tout en ce moment, n'est-ce pas? (Sauf en combinaison avecKA
ou⌕A
.)A
c'est une commande et un opérateur, mais pas bon, car cela peut créer de la confusion entreFind
etFindAll
, mais vous vous retrouvez ensuite coincé àH
etO
, qui ne sont utilisés que comme modificateurs, puisQ
ne sont pas utilisés du tout, ce qui vous limite. Des lettres grecques, alors?Perl 5
-lp
, 24 octetsEssayez-le en ligne!
Facile à étendre à de plus en plus des mots - clés, mais vous aurez besoin de faire boîtier spécial à partir de 4 lettres parce que vous rencontrez des problèmes avec
dump
,eval
,exit
,getc
etc ..Bien sûr, la sortie des opérateurs et des sceaux est ennuyeuse mais plus courte à 11 octets:
Essayez-le en ligne!
(J'ai sauté
#
car il n'est pas clair comment je dois le classer dans le contexte de ce défi)la source
JavaScript (Node.js) ,
7961 octetsEssayez-le en ligne!
Comment :
Si l'utilisation d'opérateurs est autorisée (ce sera probablement parce qu'ils sont des mots réservés), alors:
JavaScript (Node.js) ,
2625 octetsEssayez-le en ligne!
8 octets enregistrés grâce à @Adam et 1 octet supplémentaire grâce à @ l4m2
Comment :
la source
n=>'|/^%+<&*-='.substr(-n)
int
soit un «mot réservé» selon la définition du défi. Vous pouvez certainement nommer une variableint
en JavaScript.int
est réservé comme un futur mot-clé possible par la spécification ECMAScript.substr
au lieu deslice
?Rubis , 22 octets
Essayez-le en ligne!
-2 octets grâce à @ benj2240
la source
String#[]
a une surcharge à deux arguments que vous pouvez utiliser pour -2 octets:[0,n]
p
n'est pas un mot réservé,&
devrait fonctionnerp
qui sera accessible au lieu d'appeler la méthode sans variable (p = 1; p p #=> 1
)Pyth , 4 octets
Essayez-le en ligne!
Malheureusement, la plupart des lettres sont des variables (
GHJKNQTYZbdkz
).la source
C # .NET,
7662 octets (mots clés)Essayez-le en ligne.
Ancienne réponse de 76 octets:
Essayez-le en ligne.
Explication:
Liste des mots clés disponibles dans C # .NET.
C # .NET, 30 octets (opérateurs)
Essayez-le en ligne.
la source
Charm , 52 octets
Cela génère tous les mots réservés dans Charm.
Étant donné que tout le code non récursif de Charm est compatible en ligne, il s'agit d'une fonction anonyme. Appelez comme ceci:
(sorties
[ := :: "
, les quatre seuls mots réservés.)Attribuer un nom à cette fonction ajoute 5 octets:
la source
Brain-Flak ,
122120 octetsEssayez-le en ligne!
Je fais juste ma part pour remplir les exemples de langues. Sorties
()[]<>}{
, ressortant par l'avant pour les nombres inférieurs à 8.la source
Unaire,6072204020736072426436378380483266268 octetsMerci Jo King pour la réduction de 99,99999373768646738908474177860631%
la source
,[.-]
qu'en Lenguage correspond à l'exigence?Rubis ,
5049 octetsEssayez-le en ligne!
Ne pas utiliser les opérateurs (
+
,|
, etc.).la source
Rubis,
7168 octetsD'accord, pas l'approche la plus courte, mais trop amusante pour ne pas poster. Recherche par programme toutes les chaînes de jusqu'à trois lettres minuscules qui ne peuvent pas être attribuées. Il se trouve qu'il y en a exactement 10:
["do", "if", "in", "or", "and", "def", "end", "for", "nil", "not"]
.Edit: sauvé 3 octets grâce à Asone Tuhid.
la source
Object
car c'est une superclasse deException
Japt , 3 octets
Renvoie une chaîne, chaque caractère individuel étant un nom de méthode dans Japt.
Essayez-le
;C
est l'alphabet minuscule et leî
répète jusqu'à ce que sa longueur soit égale à l'entrée.la source
Poulet , 7 octets
Pas une réponse sérieuse. Mais cela doit être ici.
la source
R ,
76626057 octets12 octets économisés grâce à MickyT
5 octets économisés grâce à snoram
Essayez-le en ligne!
Il n'y a pas beaucoup de mots réservés dans R mais ceux-ci sont parmi les plus courts à encoder. Il n'y en a que 9 ici, mais si une entrée de
10
est donnée, une valeur manquanteNA
est ajoutée à la fin de la liste et imprimée.la source
"NaN"
aussi0/0
ouNaN
aussi pour un autre couple d'octets.1/0,0/0
par1:0/0
.1[1:2]
renvoie[1] 1 NA
=> vous pouvez ignorerNA
le vecteur d'origine ... si l'entrée utilisateur est 10, elle sera ajoutée à la fin.Python 2 , 64 octets
Essayez-le en ligne!
Python 2 , 57 octets (avec opérateurs)
Essayez-le en ligne!
opérateurs de mots clés
la source
Espace , 84 octets
Lettres
S
(espace),T
(tabulation) etN
(nouvelle ligne) ajoutées uniquement en surbrillance.[..._some_action]
ajouté à titre d'explication uniquement.Les espaces blancs ne contiennent que trois «mots clés» valides: les espaces, les tabulations et les nouvelles lignes.
Explication en pseudo-code:
L'exemple s'exécute:
Contribution:
1
Le programme s'arrête avec une erreur: aucune sortie définie.
Essayez-le en ligne (avec des espaces bruts, des tabulations et des nouvelles lignes uniquement).
Génère un seul espace.
Contribution:
2
Le programme s'arrête avec une erreur: aucune sortie définie.
Essayez-le en ligne (avec des espaces bruts, des tabulations et des nouvelles lignes uniquement).
Génère un espace, suivi d'un onglet.
Entrée:
3
(ou supérieure)Le programme s'arrête avec une erreur: aucune sortie définie.
Essayez-le en ligne (avec des espaces bruts, des tabulations et des nouvelles lignes uniquement).
Génère un espace, suivi d'un onglet, suivi d'une nouvelle ligne.
la source
Brain-Flak , 118 octets
Essayez-le en ligne!
la source
05AB1E , 2 octets
Essayez-le en ligne!
Chaque lettre de l'alphabet est une commande dans 05AB1E.
Tout cela ne fait qu'imprimer les premières
N
lettres de l'alphabet.la source
> <> ,
11 109 octetsEssayez-le en ligne!
Il s'est avéré que la solution la plus simple était la meilleure. Cela génère les n premiers nombres, à partir de 0.
Anciennes solutions de 10 octets
Essayez-le en ligne!
Quelques alternatives de 10 octets:
"':1+{[>o<
"r:n[~>o<a
"'a{[>o<bc
la source
Haskell , 22 octets
Essayez-le en ligne!
Merci à @Angs d'avoir détecté des erreurs de mots clés.
Je pensais que cela pourrait être plus court en générant la chaîne au lieu de la définir explicitement, mais je n'ai pas pu trouver une plage de 10 caractères ASCII consécutifs qui sont des mots clés Haskell (j'en ai trouvé certains qui sont proches, si vous comptez les mots clés d'extension de langue). S'il y en a un, vous pouvez le réduire à 15 octets avec ceci, en le remplaçant
%
par le caractère de départ:Sans mots clés symboliques:
Haskell , 58 octets
Essayez-le en ligne!
la source
!
n'est pas réservé, par exemplelet a!b=a+b
est très bienas
est également un identifiant valide..
n'est pas réservé non plus - aucun des autres opérateurs en prélude comme+
etc. ne le sont - voir ceciC (gcc) ,
6260 octets-2 grâce au GPS
Essayez-le en ligne!
Je veux dire ... il n'a jamais été nécessaire de séparer les mots clés.
Dans le cas où j'ai mal lu - ou si vous êtes plus intéressé par quelque chose de plus dans l'esprit de la question - voici une version alternative avec des espaces de séparation:
C (gcc) , 69 octets
Essayez-le en ligne!
la source
do
?do
si vous utilisez des fonctions de sortie de chaîne. 69 octets: TioTcl , 37 octets
Essayez-le en ligne!
la source
Taxi, 509 octets
Cela prend une chaîne codée en dur en haut et en imprime "n" caractères, puis des erreurs avec "erreur: aucun passager sortant trouvé".
La chaîne contient:
[
et]
les caractères utilisés pour déclarer un plana
utilisé dans la syntaxe "Ramasser un passager ...".l
etr
, abréviation de "gauche" et "droite", utilisé pour indiquer au conducteur dans quel sens tourner.n
,s
,e
Etw
, les quatre directions.Je crois que tous ceux-ci comptent comme un seul mot-clé de caractère. Non golfé:
la source
J , 15 octets
Essayez-le en ligne!
Donne un tableau de chaînes
A.
àJ.
.Les mots en pointillés dans J agissent comme des structures intégrées (telles que
a.
ouA.
) ou des structures de contrôle (telles queif.
oudo.
), ou jettent simplement une erreur d'orthographe. Aucun d'entre eux ne peut être utilisé comme identifiant.Moins intéressant, 15 octets
Essayez-le en ligne!
Donne certains des 10 verbes à un octet.
la source
Utilitaires Bash et Shell 20 octets
Vous pouvez enregistrer cela dans un fichier avec des autorisations d'exécution (intégrées) et l'exécuter sous bash comme ceci:
Génère les premiers N bash intégrés.
Si vous utilisez un shell autre que bash, vous aurez besoin de la ligne shebang #! / Bin / bash au début du fichier, pour + 12b
la source
QBasic, 60 octets
Cette réponse correspond le mieux à l'esprit de la question, je crois: produire des mots-clés réservés alphabétiques avec des espaces entre les deux. Je ne pense pas que les opérateurs symboliques comptent vraiment comme des "mots" dans QBasic, mais pour être complet, voici une réponse de 30 octets utilisant des opérateurs:
la source