Para un lenguaje de computadora, una palabra reservada es una palabra que no se puede usar como un identificador, como el nombre de una variable, función o etiqueta. Para otros idiomas de computadora, las palabras clave se pueden considerar como el conjunto de instrucciones de idioma.
Desafío
Usando el idioma de su elección, escriba un código en el idioma elegido que, dado un número entre uno y diez 1<=n<=10
, emite las n
palabras reservadas (palabras clave) del idioma elegido.
Detalles específicos
- Si el idioma elegido distingue entre mayúsculas y minúsculas, las palabras clave de salida también deben serlo.
- Si el idioma elegido no distingue entre mayúsculas y minúsculas, las palabras clave generadas pueden serlo en cualquier caso.
- Si el idioma elegido tiene menos de 10 palabras clave que dicen
p
, el código debe generar todas las palabras reservadas para cualquiern
entrep
y10
. - Si es posible, especifique en la respuesta si considera a los operadores como palabras clave o no.
Posibles muestras para Java (JDK10)
n=1 --> true
n=3 --> try new interface
n=4 --> continue this long break
Posibles muestras para> <>
n=1 --> >
n=3 --> > < ^
n=4 --> > < \ /
Posibles muestras para Brain-Flak
n=1 --> (
n=3 --> ( ) [ ]
n=9 --> ( ) [ ] { } < >
Reglas
- La entrada y la salida se pueden dar en cualquier formato conveniente .
- No es necesario manejar valores de entrada inválidos , las entradas válidas son: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10.
- Un programa completo o una función son aceptables. Si es una función, puede devolver el resultado en lugar de imprimirlo.
- Si es posible, incluya un enlace a un entorno de prueba en línea para que otras personas puedan probar su código.
- Las lagunas estándar están prohibidas.
- Este es el código de golf, por lo que se aplican todas las reglas habituales de golf, y gana el código más corto (en bytes).
code-golf
string
compression
mdahmoune
fuente
fuente
continue this long break
¡Yo deseo! Por eso estoy en SE!Respuestas:
APL (Dyalog Unicode) , SBCS de 9 bytes
Programa completo Solicita stdin para
n
(en realidad funciona para el rango 0–29). Las palabras clave APL son símbolos de un solo carácter, por lo que imprimen
símbolos en stdout.Pruébalo en línea!
⎕AV
el vector atómico (es decir, el conjunto de caracteres)156↓
soltar los primeros 156 elementos⎕↑
solicitarn
y tomar tantos elementos de lo anteriorfuente
Python 2 , 25 bytes
Una función sin nombre que acepta un número entero en [1,10] que devuelve una cadena de operadores binarios de un solo byte.
Pruébalo en línea!
Los operadores:
Si solo se permiten palabras clave reales: 40 bytes
Una función sin nombre que acepta un número entero en [1,10] que devuelve una lista de cadenas.
Pruébalo en línea!
El código debe ser bastante sencillo: define una función que toma un argumento,
n
y utiliza lalambda n:...
que devuelve la primeran
(...[:n]
) de las palabras clave conocidas utilizando la biblioteca estándarkeywords.kwlist
(junto con la técnica de golf estándar deimport*
).fuente
=
es "Asignación" como==
es "Prueba de igualdad"Java 10,
8372 bytes (palabras clave)Pruébalo en línea.
Antigua respuesta de 83 bytes:
Pruébalo en línea.
Explicación:
Lista de palabras clave disponibles para Java 8. Java 10 tiene la palabra clave
var
además de estas.Java 8+, 30 bytes (operadores)
Pruébalo en línea.
fuente
Jalea , 3 bytes
Un enlace monádico que acepta un número entero y devuelve una lista de caracteres.
Pruébalo en línea!
Los caracteres resultantes son todos átomos monádicos en la página de códigos de Jelly :
¿Cómo?
fuente
Carbón , 16 bytes
Lástima que no haya una variable preestablecida para su propia página de códigos en Charcoal.
Pruébalo en línea.
Explicación:
Obtenga una subcadena del índice 0 al número de entrada:
La cadena con 10 palabras clave:
fuente
n
de ellos, lo que puedo hacer en 8 bytes.A
por ejemplo, no se usa en este momento, ¿verdad? (Excepto en combinación conKA
o⌕A
.)A
es un comando y un operador, pero no es bueno, ya que puede causar confusión entreFind
yFindAll
, pero luego te quedas atascado nuevamente enH
yO
, que solo se usa como modificadores, y luegoQ
no se usa en absoluto, lo que te limita. Letras griegas, entonces?Perl 5
-lp
, 24 bytesPruébalo en línea!
Fácil de ampliar a más y más largas palabras clave, pero se necesita hacer carcasa especial a partir de las 4 letras debido a que se ejecutará en problemas con
dump
,eval
,exit
,getc
etc ..Por supuesto, la salida de operadores y sigilos es aburrida pero más corta en 11 bytes:
Pruébalo en línea!
(Me salté,
#
ya que no está claro cómo debo clasificarlo en el contexto de este desafío)fuente
JavaScript (Node.js) ,
7961 bytesPruébalo en línea!
Cómo :
Si se permite el uso de operadores (lo más probable es que sean palabras reservadas), entonces:
JavaScript (Node.js) ,
2625 bytesPruébalo en línea!
Ahorró 8 bytes gracias a @Adam y 1 byte más gracias a @ l4m2
Cómo :
fuente
n=>'|/^%+<&*-='.substr(-n)
int
sea una "palabra reservada" según la definición del desafío. Ciertamente puede nombrar una variableint
en JavaScript.int
está reservado como una posible palabra clave futura por la especificación ECMAScript.substr
lugar deslice
?Ruby , 22 bytes
Pruébalo en línea!
-2 bytes gracias a @ benj2240
fuente
String#[]
tiene una sobrecarga de dos argumentos que puede usar para -2 bytes:[0,n]
p
no es una palabra reservada,&
debería funcionarp
que se accederá en lugar de llamar al método sin variables (p = 1; p p #=> 1
)Pyth , 4 bytes
Pruébalo en línea!
Desafortunadamente, muchas de las letras son variables (
GHJKNQTYZbdkz
).fuente
C # .NET,
7662 bytes (palabras clave)Pruébalo en línea.
Antigua respuesta de 76 bytes:
Pruébalo en línea.
Explicación:
Lista de palabras clave disponibles en C # .NET.
C # .NET, 30 bytes (operadores)
Pruébalo en línea.
fuente
Encanto , 52 bytes
Esto genera todas las palabras reservadas en Charm.
Dado que todo el código no recursivo en Charm es en línea, esta es una función anónima. Llame así:
(salidas
[ := :: "
, las únicas cuatro palabras reservadas).Darle un nombre a esta función agrega 5 bytes:
fuente
Brain-Flak ,
122120 bytesPruébalo en línea!
Solo estoy haciendo mi parte para completar los idiomas de ejemplo. Salidas
()[]<>}{
, que salen del frente para números menores que 8.fuente
Unario,6072204020736072426436378380483266268 bytesGracias, Jo King por 99.999993768646738908474177860631% reductor
fuente
,[.-]
En Lenguage se ajusta al requisito?Ruby ,
5049 bytesPruébalo en línea!
No usar cualquier operador (
+
,|
, etc.).fuente
Ruby,
7168 bytesDe acuerdo, no es el enfoque más corto, pero es demasiado divertido para no publicar. Programáticamente encuentra todas las cadenas de hasta tres letras minúsculas que no se pueden asignar. Sucede que hay exactamente 10:
["do", "if", "in", "or", "and", "def", "end", "for", "nil", "not"]
.Editar: Guardado 3 bytes gracias a Asone Tuhid.
fuente
Object
ya que es una superclase deException
Japt , 3 bytes
Devuelve una cadena, con cada carácter individual como un nombre de método en Japt.
Intentalo
;C
es el alfabeto en minúsculas y loî
repite hasta que su longitud sea igual a la entrada.fuente
Pollo , 7 bytes
No es una respuesta seria. Pero tiene que estar aquí.
fuente
R ,
76626057 bytes12 bytes guardados gracias a MickyT
5 bytes guardados gracias a snoram
Pruébalo en línea!
No hay muchas palabras reservadas en R, pero estas se encuentran entre las más cortas para codificar. Aquí solo hay 9, pero si se proporciona una entrada de
10
,NA
se agrega un valor faltante al final de la lista y se imprime.fuente
"NaN"
como0/0
oNaN
también para otro par de bytes.1/0,0/0
con1:0/0
.1[1:2]
devuelve[1] 1 NA
=> puede omitirNA
el vector original ... si la entrada del usuario es 10, se agregará al final.Python 2 , 64 bytes
Pruébalo en línea!
Python 2 , 57 bytes (con operadores)
Pruébalo en línea!
operadores de palabras clave
fuente
Espacio en blanco , 84 bytes
Letras
S
(espacio),T
(tabulación) yN
agregaron (nueva línea) solo como resaltado.[..._some_action]
agregado solo como explicación.El espacio en blanco solo contiene tres 'palabras clave' válidas: espacios, pestañas y nuevas líneas.
Explicación en pseudocódigo:
Ejecuciones de ejemplo:
Entrada:
1
El programa se detiene con un error: no hay salida definida.
Pruébelo en línea (solo con espacios en bruto, pestañas y nuevas líneas).
Emite un solo espacio.
Entrada:
2
El programa se detiene con un error: no hay salida definida.
Pruébelo en línea (solo con espacios en bruto, pestañas y nuevas líneas).
Emite un espacio, seguido de una pestaña.
Entrada:
3
(o superior)El programa se detiene con un error: no hay salida definida.
Pruébelo en línea (solo con espacios en bruto, pestañas y nuevas líneas).
Emite un espacio, seguido de una pestaña, seguido de una nueva línea.
fuente
Brain-Flak , 118 bytes
Pruébalo en línea!
fuente
05AB1E , 2 bytes
Pruébalo en línea!
Cada letra del alfabeto es un comando en 05AB1E.
Todo lo que hace es imprimir las primeras
N
letras del alfabeto.fuente
> <> ,
11 109 bytesPruébalo en línea!
Resultó que la solución más simple era la mejor. Esto genera los primeros n números, comenzando desde 0.
Soluciones antiguas de 10 bytes
Pruébalo en línea!
Algunas alternativas de 10 bytes:
"':1+{[>o<
"r:n[~>o<a
"'a{[>o<bc
fuente
Haskell , 22 bytes
Pruébalo en línea!
Gracias a @Angs por detectar errores de palabras clave.
Sentí que esto podría ser más corto al generar la cadena en lugar de definirla explícitamente, pero no pude encontrar un rango de 10 caracteres ASCII consecutivos que son palabras clave de Haskell (encontré algunos que están cerca, si cuenta palabras clave de extensión de idioma). Si hay uno, puede reducirlo a 15 bytes con esto, reemplazando
%
con el carácter inicial:Sin palabras clave simbólicas:
Haskell , 58 bytes
Pruébalo en línea!
fuente
!
no está reservado, por ejemplo,let a!b=a+b
está bienas
que también es un identificador válido..
tampoco está reservado - ninguno de los otros operadores en preludio como+
etc. lo están - mira estoC (gcc) ,
6260 bytes-2 gracias a GPS
Pruébalo en línea!
Quiero decir ... nunca hubo ningún requisito para separar realmente las palabras clave.
En caso de que haya leído mal, o si está más interesado en algo más en el espíritu de la pregunta, aquí hay una versión alternativa con espacios de separación:
C (gcc) , 69 bytes
Pruébalo en línea!
fuente
do
?do
si usa funciones de salida de cadena. 69 bytes: TioTcl , 37 bytes
Pruébalo en línea!
fuente
Taxi, 509 bytes
Esto toma una cadena codificada en la parte superior e imprime "n" caracteres de ella, y luego errores con "error: no se encontraron pasajeros salientes".
La cadena contiene:
[
y]
, los personajes utilizados para declarar un plana
utilizado en la sintaxis "Recoger a un pasajero ...".l
yr
, abreviatura de "izquierda" y "derecha", solía decirle al conductor qué camino tomar.n
,s
,e
, Yw
, las cuatro direcciones.Creo que todos ellos cuentan como palabras clave de un carácter. Sin golf:
fuente
J , 15 bytes
Pruébalo en línea!
Da una variedad de cadenas
A.
aJ.
.Las palabras punteadas en J actúan como elementos integrados (como
a.
oA.
) o estructuras de control (comoif.
odo.
), o simplemente arrojan errores ortográficos. Ninguno de ellos puede usarse como identificadores.Menos interesante, 15 bytes
Pruébalo en línea!
Da algunos de los 10 verbos de un byte.
fuente
Bash y shell utilidades 20 bytes
Puede guardar eso en un archivo con permisos de ejecución (incorporados) y ejecutarlo en bash de esta manera:
Emite los primeros N bash built ins.
Si está ejecutando algún shell que no sea bash, necesitará la línea shebang #! / Bin / bash al comienzo del archivo, para + 12b
fuente
QBasic, 60 bytes
Creo que esta respuesta se ajusta mejor al espíritu de la pregunta: generar palabras clave reservadas alfabéticas con espacios intermedios. No creo que los operadores simbólicos realmente cuenten como "palabras" en QBasic, pero para completar, aquí hay una respuesta de 30 bytes usando operadores:
fuente