Para um idioma de computador, uma palavra reservada é uma palavra que não pode ser usada como identificador, como o nome de uma variável, função ou rótulo. Para outros idiomas de computador, as palavras-chave podem ser consideradas como o conjunto de instruções de idioma.
Desafio
Usando o idioma de sua escolha, escreva um código no idioma escolhido, que forneça um número entre um e dez 1<=n<=10
, produza quaisquer n
palavras reservadas (palavras-chave) do idioma escolhido.
Específicos
- Se o idioma escolhido diferencia maiúsculas de minúsculas, as palavras-chave geradas também devem ser.
- Se o idioma escolhido não diferencia maiúsculas de minúsculas, as palavras-chave geradas podem ser de qualquer forma.
- Se o idioma escolhido tiver menos de 10 palavras-chave dizendo
p
, o código deverá gerar todas as palavras reservadas para qualquer umn
entrep
e10
. - Se possível, especifique na resposta se você considera os operadores como palavras-chave ou não.
Amostras possíveis para Java (JDK10)
n=1 --> true
n=3 --> try new interface
n=4 --> continue this long break
Amostras possíveis para> <>
n=1 --> >
n=3 --> > < ^
n=4 --> > < \ /
Amostras possíveis para Brain-Flak
n=1 --> (
n=3 --> ( ) [ ]
n=9 --> ( ) [ ] { } < >
Regras
- A entrada e saída podem ser fornecidas em qualquer formato conveniente .
- Não há necessidade de lidar com valores de entrada inválidos , as entradas válidas são: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10.
- Um programa completo ou uma função são aceitáveis. Se uma função, você pode retornar a saída em vez de imprimi-la.
- Se possível, inclua um link para um ambiente de teste on-line para que outras pessoas possam experimentar seu código!
- As brechas padrão são proibidas.
- Isso é código-golfe, portanto todas as regras usuais de golfe se aplicam e o código mais curto (em bytes) vence.
code-golf
string
compression
mdahmoune
fonte
fonte
continue this long break
Eu gostaria! É por isso que estou no SE!Respostas:
APL (Dyalog Unicode) , SBCS de 9 bytes
Programa completo. Solicita stdin para
n
(realmente funciona para o intervalo de 0 a 29). As palavras-chave APL são símbolos de caractere único, portanto, imprimen
símbolos no stdout.Experimente online!
⎕AV
o vetor atômico (ou seja, o conjunto de caracteres)156↓
solte os primeiros 156 elementos⎕↑
solicitarn
e levar muitos elementos acimafonte
Python 2 , 25 bytes
Uma função sem nome que aceita um número inteiro em [1,10] que retorna uma sequência de operadores binários de byte único.
Experimente online!
Os operadores:
Se apenas palavras-chave reais forem permitidas: 40 bytes
Uma função sem nome que aceita um número inteiro em [1,10] que retorna uma lista de strings.
Experimente online!
O código deve ser bem direto - ele define uma função que
n
usa um argumento,, usando olambda n:...
qual retorna a primeiran
(...[:n]
) das palavras-chave conhecidas usando as bibliotecas padrãokeywords.kwlist
(junto com a técnica de golfe padrão deimport*
).fonte
=
é "Assignment" como==
é "Teste de igualdade"Java 10,
8372 bytes (palavras-chave)Experimente online.
Resposta antiga de 83 bytes:
Experimente online.
Explicação:
Lista de palavras-chave disponíveis para Java 8. Java 10 possui a palavra-chave
var
além dessas.Java 8 ou mais, 30 bytes (operadores)
Experimente online.
fonte
Gelatina , 3 bytes
Um link monádico que aceita um número inteiro e retorna uma lista de caracteres.
Experimente online!
Os caracteres resultantes são todos átomos monádicos na página de código de Jelly :
Como?
fonte
Carvão , 16 bytes
Pena que não há uma variável predefinida para sua própria página de código no Charcoal.
Experimente online.
Explicação:
Obtenha uma substring do índice 0 para o número de entrada:
A sequência com 10 palavras-chave:
fonte
n
, o que eu posso fazer em 8 bytes.A
exemplo, por exemplo, não está sendo usado no momento, não é? (Excepto em combinação comKA
ou⌕A
.)A
é um comando e operador, mas não é bom, pois pode causar confusão entreFind
eFindAll
, mas você fica preso novamente emH
eO
, que só é usado como modificador e depoisQ
não é usado, o que o limita. Letras gregas, então?Perl 5
-lp
, 24 bytesExperimente online!
Fácil de estender para mais e mais palavras-chave, mas você vai precisar fazer caixa especial a partir de 4 letras, porque você vai ter problemas com
dump
,eval
,exit
,getc
etc ..É claro que apenas a saída de operadores e sigilos é chata, mas menor em 11 bytes:
Experimente online!
(Ignorei,
#
pois não está claro como devo classificá-lo no contexto deste desafio)fonte
JavaScript (Node.js) ,
7961 bytesExperimente online!
Quão :
Se o uso de operadores for permitido (provavelmente será porque são palavras reservadas), então:
JavaScript (Node.js) ,
2625 bytesExperimente online!
Economizou 8 bytes graças a @Adam e mais 1 byte graças a @ l4m2
Quão :
fonte
n=>'|/^%+<&*-='.substr(-n)
int
seja uma "palavra reservada", conforme a definição do desafio. Você certamente pode nomear uma variávelint
em JavaScript.int
é reservada como uma possível palavra-chave futura pela especificação ECMAScript.substr
invés deslice
?Ruby , 22 bytes
Experimente online!
-2 bytes graças a @ benj2240
fonte
String#[]
tem uma sobrecarga de dois argumentos que você pode usar para -2 bytes:[0,n]
p
não é uma palavra reservada,&
devem trabalharp
que será acessado em vez de chamar o método sem variáveis (p = 1; p p #=> 1
)Pitão , 4 bytes
Experimente online!
Infelizmente, muitas das letras são variáveis (
GHJKNQTYZbdkz
).fonte
C # .NET,
7662 bytes (palavras-chave)Experimente online.
Resposta antiga de 76 bytes:
Experimente online.
Explicação:
Lista de palavras-chave disponíveis no C # .NET.
C # .NET, 30 bytes (operadores)
Experimente online.
fonte
Charme , 52 bytes
Isso gera todas as palavras reservadas no encanto.
Como todo código não-recursivo no Charm pode ser incorporado em linha, essa é uma função anônima. Ligue assim:
(gera
[ := :: "
, as únicas quatro palavras reservadas.)Dar um nome a esta função adiciona 5 bytes:
fonte
Flak cerebral ,
122120 bytesExperimente online!
Apenas fazendo minha parte para preencher os idiomas de exemplo. Saídas
()[]<>}{
, aparecendo na frente para números menores que 8.fonte
Unário,6072204020736072426436378380483266268 bytesObrigado Jo King por 99.999993768646738908474177860631% de redução
fonte
,[.-]
Lenguage se ajusta ao requisito?Ruby ,
5049 bytesExperimente online!
Não usar nenhum operadores (
+
,|
, etc.).fonte
Ruby,
7168 bytesOk, não é a abordagem mais curta, mas é divertido demais para não postar. Programaticamente encontra todas as seqüências de caracteres de até três letras minúsculas às quais não pode ser atribuído. Acontece exatamente 10:
["do", "if", "in", "or", "and", "def", "end", "for", "nil", "not"]
.Editar: salvou 3 bytes graças a Asone Tuhid.
fonte
Object
já que é uma superclasse deException
Japt , 3 bytes
Retorna uma string, com cada caractere individual sendo um nome de método em Japt.
Tente
;C
é o alfabeto em minúsculas e oî
repete até que seu comprimento seja igual à entrada.fonte
Frango , 7 bytes
Não é uma resposta séria. Mas tem que estar aqui.
fonte
R ,
76626057 bytes12 bytes salvos graças ao MickyT
5 bytes salvos graças ao snoram
Experimente online!
Não há muitas palavras reservadas em R, mas essas são as mais curtas de codificar. Existem apenas 9 aqui, mas se uma entrada
10
for fornecida, um valor ausenteNA
será anexado ao final da lista e impresso.fonte
"NaN"
também0/0
ouNaN
para outros dois bytes.1/0,0/0
por1:0/0
.1[1:2]
retorna[1] 1 NA
=> você pode pularNA
o vetor original ... se a entrada do usuário for 10, ela será anexada no final.Python 2 , 64 bytes
Experimente online!
Python 2 , 57 bytes (com operadores)
Experimente online!
operadores de palavras-chave
fonte
Espaço em branco , 84 bytes
Letras
S
(espaço),T
(guia) eN
(nova linha) adicionadas apenas como destaque.[..._some_action]
adicionado apenas como explicação.O espaço em branco contém apenas três 'palavras-chave' válidas: espaços, guias e novas linhas.
Explicação em pseudo-código:
Exemplo é executado:
Entrada:
1
O programa para com um erro: Nenhuma saída definida.
Experimente online (apenas com espaços brutos, guias e novas linhas).
Produz um único espaço.
Entrada:
2
O programa para com um erro: Nenhuma saída definida.
Experimente online (apenas com espaços brutos, guias e novas linhas).
Gera um espaço, seguido por uma guia.
Entrada:
3
(ou superior)O programa para com um erro: Nenhuma saída definida.
Experimente online (apenas com espaços brutos, guias e novas linhas).
Gera um espaço, seguido por uma guia, seguida por uma nova linha.
fonte
Flacidez Cerebral , 118 bytes
Experimente online!
fonte
05AB1E , 2 bytes
Experimente online!
Cada letra do alfabeto é um comando em 05AB1E.
Tudo o que isso faz é imprimir as primeiras
N
letras do alfabeto.fonte
> <> ,
11 109 bytesExperimente online!
Acabou que a solução mais simples foi a melhor. Isso gera os primeiros n números, começando em 0.
Soluções antigas de 10 bytes
Experimente online!
Algumas alternativas de 10 bytes:
"':1+{[>o<
"r:n[~>o<a
"'a{[>o<bc
fonte
Haskell , 22 bytes
Experimente online!
Agradecemos ao @Angs por detectar erros de palavras-chave.
Eu senti que isso poderia ser mais curto gerando a string em vez de defini-la explicitamente, mas não consegui encontrar um intervalo de 10 caracteres ASCII consecutivos que sejam palavras-chave Haskell (eu encontrei alguns que são próximos, se você contar palavras-chave de extensão de idioma). Se houver um, você poderá reduzi-lo para 15 bytes por isso, substituindo
%
pelo caractere inicial:Sem palavras-chave simbólicas:
Haskell , 58 bytes
Experimente online!
fonte
!
não é reservada, por exemplo,let a!b=a+b
é muito bemas
também é um identificador válido..
não é reservada qualquer - nenhum dos outros operadores em prelúdio como+
etc são - ver estaC (gcc) ,
6260 bytes-2 graças ao GPS
Experimente online!
Quero dizer ... nunca houve nenhum requisito para realmente separar as palavras-chave.
Caso eu interprete mal - ou você esteja mais interessado em algo mais no espírito da pergunta - aqui está uma versão alternativa com espaços separados:
C (gcc) , 69 bytes
Experimente online!
fonte
do
?do
se usar as funções de saída de sequência. 69 bytes: TioTcl , 37 bytes
Experimente online!
fonte
Táxi, 509 bytes
Isso pega uma string codificada no topo e imprime caracteres "n" e, em seguida, erros com "error: nenhum passageiro de saída encontrado".
A cadeia contém:
[
e]
, os caracteres usados para declarar um planoa
usado na sintaxe "Receber um passageiro ...".l
er
, abreviação de "left" e "right", costumava dizer ao motorista para que lado virar.n
,s
,e
, Ew
, as quatro direções.Acredito que tudo isso conta como palavras-chave de um caractere. Ungolfed:
fonte
J , 15 bytes
Experimente online!
Dá uma matriz de seqüências de caracteres
A.
paraJ.
.Palavras pontilhadas em J atuam como built-ins (como
a.
ouA.
) ou estruturas de controle (comoif.
oudo.
), ou simplesmente lançam um erro de ortografia. Nenhum deles pode ser usado como identificador.Menos interessante, 15 bytes
Experimente online!
Dá alguns dos 10 verbos de um byte.
fonte
Utilitários Bash e Shell 20 bytes
Você pode salvar isso em um arquivo com permissões de execução (builtins) e executá-lo no bash assim:
Produz o primeiro N bash embutido.
Se você estiver executando algum shell que não seja o bash, precisará da linha shebang #! / Bin / bash no início do arquivo, para + 12b
fonte
QBasic, 60 bytes
Esta resposta se encaixa melhor no espírito da pergunta: gerar palavras-chave reservadas alfabéticas com espaços entre elas. Eu não acho que operadores simbólicos realmente contam como "palavras" no QBasic, mas, para completar, aqui está uma resposta de 30 bytes usando operadores:
fonte