Os Símbolos vs. As Letras
Os caracteres ASCII foram divididos mais uma vez ! Seus conjuntos são As letras e Os símbolos .
As cartas
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
Os Símbolos
!"#$%&'()*+,-./0123456789:;<=>?@[\]^_`{|}~
A tarefa é escrever dois programas:
Imprima cada uma das cartas exatamente uma vez sem usar nenhuma delas em seu programa.
Imprima cada um dos símbolos exatamente uma vez sem usar nenhum deles em seu programa.
Regras
- Espaço em branco pode aparecer no seu programa ou na saída.
- Caracteres não ASCII não são permitidos.
- A saída vai para a saída padrão ou para um arquivo como o conteúdo ou o nome do arquivo.
- Sem entrada.
- A saída deve conter apenas caracteres ASCII de um conjunto ou do outro.
- Os programas podem ser escritos em diferentes idiomas ou no mesmo idioma, com uma exceção:
- O idioma Whitespace pode ser usado apenas para um dos programas.
- Aplicam-se brechas padrão .
Pontuação
# of characters in program 1
+# of characters in program 2
=Score
Menor pontuação ganha!
Nota:
Para incentivar mais envios, você ainda pode postar uma resposta com uma solução para apenas um dos programas. Você não será capaz de vencer, mas ainda poderá mostrar algo legal.
Agradecemos ao Calvin's Hobbies por inspirar a idéia com sua pergunta anterior .
code-golf
restricted-source
hmatt1
fonte
fonte
Respostas:
Total: 53 caracteres
Total em um único idioma: 230 caracteres, Pyth
Parte 1: Golfscript, 15
Saídas:
Explicação:
Parte 2: Pitão , 38
Saídas:
Explicação:
Solução bônus:
Parte 1: Pyth, 192
Explicação:
$"%\143"$
=> "% c".$
alterna de e para o estilo de análise Python e, na análise de seqüência de caracteres Python,\143
é a sequência de escape octal parac
. Esta resposta é, portanto, equivalente ao seguinte código no estilo Python:Obviamente, isso não funciona no Python, porque a impressão no Python usa
print
, mas a impressão no Pyth está implícita, por isso funciona.As soluções Pyth não usam nenhum dos recursos adicionados desde que a pergunta foi feita.
fonte
Python (Símbolos,
8782)Eu simplesmente amo o módulo de strings do Python ...
Editar:
Resultado:
FALSE (Cartas, 21)DUP (Cartas, 20):Solução FALSE:
Solução DUP (1 caractere mais curto)
Saída (para ambos):
Intérprete para FALSO.
Total: 102
fonte
from string import*
funciona igualmente bem e reduz a contagem de bytes.*
é proibido neste contexto ...from string import punctuation, digits
. Solução agradável que segue as regras. Desculpe pelo meu erro!GolfScript (14 caracteres) + Peixe morto x (116 caracteres) = 130 caracteres
e
fonte
Partes 1 e 2 no Ruby 2, 56 + 484 = 540
Parte 1:
Para saber mais sobre esse estilo de Ruby, confira narfnme .
Parte 2 (esse bit é apenas Ruby 2.0+, funciona perfeitamente com o ruby-2.1.0, mas pode fornecer avisos nas versões anteriores):
Aquele foi difícil. Chamar métodos Fixnum internos como
chr
esucc
requer a abertura da classe Fixnum e a redefiniçãoinspect
, pois posso acionar uma chamadax.inspect
comp x
. Preciso inspecionar para retornar,nil
para quep
apenas imprima uma nova linha, qualquer sequência será enquadrada entre aspas duplas. Mas como efeito colateral, ele faz um loop. Posso finalizar o primeiro loop e o segundo loop usando uma comparação de strings para ver quando atingi um intervalo de letras, mas como não consigo escrever um literal de strings, preciso obtê-lo chamandoString()
o símbolo retornado (em Ruby 2) peladef
palavra - chave. Como essa é uma sintaxe multilinha, eu só posso fazer comparação de strings viacase
, que não pode aceitar expressões com várias linhas, preciso agrupar o literal em um método (já que obviamente não posso fazer a atribuição). O último loop é mais difícil de terminar. Eu preciso que pare às~
. Felizmente, dos caracteres ascii nesse intervalo,~
é o único que pode ser chamado em um Fixnum sem argumentos sem gerar um erro, para que eu possa usarsend chr
para detectar quando estou no final e parar de executar o loop.Não é a melhor pontuação neste segmento, mas até agora o único que usa o mesmo idioma para ambas as partes. Yay Ruby.
fonte
Parte 2 no Applescript, 654
espere ... onde está a página " dicas para jogar golfe no Applescript "?
Resultado:
fonte
CJam + AlphaBeta , 62 bytes
Cartas, CJam , 12 bytes
Experimente online!
Resultado
Como funciona
Símbolos, AlphaBeta , 50 bytes
Experimente online!
O intérprete oficial do C ++ possui um bug que impossibilita os loops e não consigo descobrir como usar o intérprete Lua. Eu consertei esse bug. Você pode verificar se ele funciona conforme o esperado, executando os programas de exemplo na página EsoLang.
Resultado
Como funciona
fonte
Parte 1 no BrainFuck:
8074 bytesfonte
>
devido à falta de recuo do código. Portanto, é renderizado como uma cotação.Total 318 bytes
Eu realmente esperava encontrar uma resposta com os dois programas no mesmo idioma, mas até agora nada. Aqui está isso:
Parte 1: Pure bash, 129 bytes
Resultado:
Parte 2: GNU dc, 189 bytes
Resultado:
fonte
Bem, alguém deve seguir em frente.
Parte 1 no BrainFuck: 174 bytes
fonte
Parte 1: Ruby, 45 bytes
Explicação
?@...?[
) e um intervalo contendo AZ (?`...?{
) tornam-se os elementos da matriz_
usando o operador splat (*
)."@"
) e o 27º elemento ("`"
) da matriz_
estão definidos comonil
._
é unida usandoArray#*
e impressa em stdout ($>
)fonte
*$_
na segunda linha porp
(ou[]
).