Aqui está uma lista dos 118 elementos (atuais) da tabela periódica (em um Snippet de pilha recolhido para sua conveniência):
Nota: Esta lista foi encontrada executando o seguinte código JavaScript nesta página da Wikipedia :[].slice.call($('.wikitable:first tr td:nth-child(3)').map(function(){return this.innerText})).slice(1,-1).join('\n')
Seu desafio é produzir o maior número possível deles, no maior número possível de idiomas. Esse objetivo é ainda mais complicado pelo fato de que os elementos radioativos estão lentamente corroendo seus personagens utilizáveis restantes à medida que avança!
Regras
Sua resposta consistirá em 1 a 95 trechos de código.
Cada trecho de código deve estar em uma linguagem de programação diferente. Para o objetivo deste desafio, estou usando uma definição muito vaga de "linguagem": tudo o que não é compatível com versões anteriores é um idioma diferente. Por exemplo, se todo o código Lang A funcionar no Lang B, mas o Lang B adicionar mais, eles serão considerados o mesmo idioma. Mas o Python 2 e o Python 3 são considerados diferentes, porque
print 'foo'
é válido no Python 2, mas não no Python 3.O primeiro trecho de código pode usar alguns ou todos os 95 caracteres ASCII imprimíveis. No segundo snippet, um caractere ASCII de sua escolha será proibido. No terceiro trecho, esse personagem e mais um de sua escolha devem ser proibidos. E assim por diante. Abas e novas linhas nunca são proibidas.
O caractere proibido deve ter sido usado no snippet anterior, não em um comentário, literal de string, etc .; ele realmente deve ser interpretado pelo compilador / intérprete. Por exemplo, se meu primeiro trecho for
print 'Hydrogen'
, não posso&
proibir porque não o usei. Minhas escolhas são qualquer um dos personagensp
,r
,i
,n
,t
,, ou
'
(eu não posso usarH
,y
,d
, ... porque aqueles estão em um literal string). O personagem que você escolher é proibido a partir de então aparecer em todos os snippets subsequentes.Cada trecho de código deve gerar um elemento exclusivo da tabela periódica (encontrado na lista acima). A "saída" pode ser realizada por qualquer método que você desejar: STDOUT, uma caixa de alerta (ex. Em JS), "saída" REPL (lembre-se de que, se incluir aspas, é inválido), gravar em um arquivo etc.
Você não deve receber nenhuma entrada ou uma string vazia como entrada (para idiomas como sed).
Você não pode usar funções internas que retornam o nome do elemento (por exemplo,
ElementData
no Mathematica).
Formatação
Formate sua resposta com o seguinte formato:
### 1. Language A - none forbidden
code
Optional commentary on this snippet goes here.
### 2. Language B - `a` forbidden
code
More optional commentary
### 3. Language C - `ab` forbidden
code
More optional commentary
etc.
Se backticks ( `
) forem proibidos, basta usar dois backticks na lista. Por exemplo, ``ab`cd``
resultará em ab`cd
. (Se o backtick for o primeiro ou o último caractere, você também deve preencher os backticks externos com espaços; ex. `` abc` ``
-> abc`
.)
Pontuação
A resposta com mais linguagens de programação vencerá. Em caso de empate, a resposta com a menor contagem cumulativa de caracteres de todos os programas vencerá.
Esta questão foi inspirada por isso.
fonte
cout<<"Hydrogen";
em C ++? Precisamos incluirinclude
s no código? Um programa precisa imprimir uma nova linha após o nome do elemento?Respostas:
95 idiomas (todos os caracteres usados!)
(TODO: mais algumas respostas que planejei, mas não implementei)
1. COBOL - proíbe
A
Imprime
Ununtrium
.2. REBOL - proíbe
B
Imprime
Tellurium
.3. bc - proíbe
^
Imprime
Strontium
.4. D - proíbe
D
Imprime
Ruthenium
.5. Java - proíbe
E
Imprime
Aluminium
.6. Scala - proíbe
F
Imprime
Plutonium
.7. Ferrugem - proíbe
G
Imprime
Americium
.8. Nim - proíbe
&
Imprime
Neptunium
.9. C # - proíbe
C
Imprime
Neodymium
.10. Burlesco - proíbe
%
Imprime
Manganese
.11. Nemerle - proíbe
I
Imprime
Magnesium
.12. Ada - proíbe
J
Imprime
Palladium
.13. Go - proíbe
|
Imprime
Germanium
.14. K - proíbe `` ''
Imprime
Ytterbium
.15. Erlang - proíbe
/
Imprime
Beryllium
.16. Prolog - proíbe
:
Imprime
Berkelium
.17. Smalltalk - proíbe
K
Imprime
Lanthanum
.18. PARI / GP - proíbe
L
Imprime
Potassium
.19. REXX - proíbe
M
Imprime
Tungsten
.20. LilyPond - proíbe
N
Imprime
Flevorium
.21. Arco - proíbe
Q
Imprime
Antimony
.22. LISP comum - proíbe
R
Imprime
Tantalum
.23. Clojure - proíbe
U
Imprime
Selenium
.24. Logotipo - proíbe
Z
Imprime
Scandium
.25. Groovy - proíbe
W
Imprime
Samarium
.26. Assíntota - proíbe
X
Imprime
Rubidium
.27. Oitava - proíbe
Y
Imprime
Yttrium
.28. gnuplot - proíbe
V
Imprime
Vanadium
.29. Kite - proíbe
z
Imprime
Nobelium
.30. Esquilo - proíbe
_
Imprime
Nitrogen
.31. Caril - proíbe
v
Imprime
Lutetium
.32. Fortran - proíbe
q
Imprime
Thallium
.33. Pascal - proíbe
l
Imprime
Francium
.34. PHP - proíbe
k
Imprime
Fluorine
.35. Haskell - proíbe
S
Imprime
Sodium
.36. C ++ - proíbe
~
Imprime
Actinium
.37. ObjC - proíbe
j
Imprime
Hydrogen
.38. Lua - proíbe
g
Imprime
Astatine
.39. JavaScript - proíbe
b
Alertas
Chlorine
.40. Bash - proíbe
h
Imprime
Osmium
.41. Ciano - proíbe
o
Imprime
Hassium
.42. J - proíbe
d
Imprime
Titanium
.43. Esquema - proíbe
x
Imprime
Vanadium
.44. C - proíbe
{
Imprime
Uranium
.45. FORTH - proíbe
m
Imprime
Thorium
.46. BASIC - proíbe
T
Imprime
Tin
.47. Perl 6 - proíbe
y
Imprime
Terbium
.48. Asdf - proíbe
a
Imprime
Arsenic
.Gerando script .49. Tcl - proíbe
s
Impressões
Silicon
.50. Perl - proíbe
;
Impressões
Rhodium
.51. Python - proíbe
r
Impressões
Chromium
.52. WARP - proíbe
=
Imprime
Rhenium
.53. ETA - proíbe
n
Imprime
Bromine
.54. Axo - proíbe
\
Imprime
Thulium
.55. Ruby - proíbe
t
Imprime
Europium
.56. DBFV! - proíbe
u
Imprime
Niobium
. Cada espaço é realmente uma nova linha.57. Mouse - proíbe
'
Imprime
Mercury
.58. Palavra - proíbe
f
Imprime
Cadmium
.59. Ftack - proíbe
$
Imprime
Lithium
.60. WASD - proíbe
e
Introduzimos o conceito da solução trivial de Brainfuck (TBS): podemos imprimir qualquer caractere nos comandos do 257 Brainfuck, incrementando o tempo c do acumulador , produzindo e depois incrementando (256- c ) mais vezes para redefini-lo. Repetir isso para cada caractere na sequência produz a solução. Sempre que temos dois subprogramas
i
eo
que funcionam exatamente como os de Brainfuck+
e.
, chamamos o TBS traduzido de (i
,o
) -TBS.Em vez de agrupar, poderemos definir o acumulador para zero após a impressão usando algum subprograma
o'
. Este é o (i
,o'
) -zeroing TBS.Como alternativa, podemos não ter quebra automática, mas um subprograma
d
que diminui o acumulador. Este é um (i
,o
,d
-TBS).Para impressões WASD a (
w
,e
) -TBSSilver
.61. URSL - proíbe
w
A (
i1
,w1
,c1
) TBS gravurasKrypton
.62. Emmental - proíbe
#
Impressões
Iridium
.63. Coruja - proíbe
?
Impressões
Sulfur
.64. RUBE - proíbe
)
Impressões
Holmium
.65. Headsecks - proíbe
(
Impressões A (
(
,"
) -TBSBohrium
.66. FALSO - proíbe
[
Impressões
Gallium
.67. Betterave - proíbe
-
Impressões
Hafnium
.68. Kipple - proíbe
>
Impressões
Fermium
.69. GolfScript - proíbe
]
Imprime
Dubnium
.70. FlogScript - proíbe
"
Impressões
Calcium
.71. OOo CODE - proíbe
p
Impressões A (
PpP
,PPp
) -TBSBismuth
.72. dc - proíbe
P
Impressões
Cadmium
.73. Capuirequiem - proíbe
O
Impressões
Radium
.74. BitChanger - proíbe
}
Impressões
Cobalt
.75. Vrejvax - proíbe
<
Impressões
Cerium
.76. Fueue - proíbe
H
Impressões
Polonium
.77. Pi - proíbe
6
Execute a
bf2pi
partir do artigo wiki em uma solução trivial da Brainfuck para imprimirXenon
.78. CJam - proíbe
5
Impressões A (
1+
,c 0
) com zeros de zero (com0
pré - anexado)Nickel
.79. Wordfuck - proíbe
9
A (
9999
,99
) -TBS é impressaCarbon
.80. Linguagem - proíbe
7
Consulte 91-94 (use apenas
7
.)Radon
.81. Binaryfuck (hexadecimal) - proíbe
4
Impressões
Barium
.82. CaneCode - proíbe
8
Impressões A (
1
,8
) -TBSIodine
.83. Numberwang - proíbe
3
A (
2
,3
) -TBS imprimeIndium
, mas2
diminui em vez de incrementar, portanto subtraia cada código de caractere de 256 primeiro.84. ferNANDo - proíbe
2
Impressões
Argon
.85. Unefunge-98 - proíbe
@
Anexar
0
a um TBS com zeros (1+
,,0
) e anexar@
, imprimeHelium
.86. Giro - proíbe
1
Anexar
One Load Zero
a uma impressão TBS com zero (Add
,AscIO Zero
) de zerosBoron
.87. ReverseFuck - proíbe
,
A (
-
,,
) -TBS é impressaErbium
.88. Brainfuck - proíbe
+
A (
+
,.
) -TBS é impressaCurium
.89. Deadfish ~ - proíbe
c
Uma (
i
,c
) -TBS é impressaCopper
.90. Iota - proíbe
i
Calculamos uma decodificação de base 256 da Igreja numérica
Zinc
para compensar a falta de IO de Iota. DefinirEm seguida, a solução é 1516858978 repetições de,
succ
seguida por*ii
, para um comprimento total de 69775512991 bytes.Programas Unários
As quatro soluções a seguir (e 70) são semelhantes: todas elas consistem em aproximadamente 3 ^ (257 * 4 * 3) repetições do personagem que eles proíbem (exceto que a elipse é três vezes maior). O valor exato é decidido convertendo o TBS em octal, conforme descrito no wiki.
91. Elipse - proíbe
.
Imprime
Neon
.92. Em êxtase - proíbe
!
Imprime
Lead
.93. MGIFOS - proíbe
*
Imprime
Iron
.94. Unário - proíbe
0
Imprime
Gold
.95. Espaço em branco - proíbe espaço
O programa Whitespace gerado por este script Python:
impressões
Oxygen
.fonte
x
", quero dizer realmente "usax
e proíbe-o para as próximas soluções". A cadeia tornou-se incontrolável.51 idiomas
Posso acrescentar isso mais tarde, mas aqui estão 51 idiomas.
1. Java - nenhum proibido
2. C ++ -
J
proibido3. C -
JQ
proibido4. D -
JQW
proibido5. Nimrod -
JQWz
proibido6. Fortran-95 -
JQWzq
proibido7. Lote -
JQWzqY
proibido8. Befunge -
JQWzqY%
proibidoPolônio de saída.
9. Vala -
JQWzqY#%
proibido10. Bash -
JQWzqY#%@
proibido11. ECMAScript 6 -
JQWzqY#%@~
proibido12. Perl 5 -
JQWzqY#%@~`
proibido13. Scala -
JQWzqY#%@~`_
proibido14. Perl 6 -
JQWzqY#%@~`_:
proibido15. Python 2 -
JQWzqY#%@~`_:j
proibido16. Python 3 -
JQWzqY#%@~`_:jL
proibido17. PHP -
JQWzqY#%@~`_:jLK
proibido18. Pascal -
JQWzqY#%@~`_:jLK$
proibido19. POGAACK -
JQWzqY#%@~`_:jLK$X
proibidoImprime hidrogênio.
20. VACA -
JQWzqY#%@~`_:jLK$Xg
proibidaImprime plutônio.
21. Blub -
JQWzqY#%@~`_:jLK$XgM
proibidoImprime Flerovium.
22. Ok! -
JQWzqY#%@~`_:jLK$XgMB
proibidoImprime Amerício.
23. Ruby -
JQWzqY#%@~`_:jLK$XgMB!
proibido24. Lua -
JQWzqY#%@~`_:jLK$XgMB!?
proibido25. R -
JQWzqY#%@~`_:jLK$XgMB!?*
proibido26. Esquema -
JQWzqY#%@~`_:jLK$XgMB!?*U
proibido27. TI Basic -
JQWzqY#%@~`_:jLK$XgMB!?*U)
proibido28. REXX -
JQWzqY#%@~`_:jLK$XgMB!?*U)(
proibido29. BASIC (Yabasic) -
JQWzqY#%@~`_:jLK$XgMB!?*U)(Z
proibido30. Pyth -
JQWzqY#%@~`_:jLK$XgMB!?*U)(ZI
proibido31. CJam -
JQWzqY#%@~`_:jLK$XgMB!?*U)(ZI|
proibido32. GolfScript -
JQWzqY#%@~`_:jLK$XgMB!?*U)(ZI|\
proibido33. Brainfuck -
JQWzqY#%@~`_:jLK$XgMB!?*U)(ZI|\/
proibidoToma uma string vazia como entrada.
34. Haskell -
JQWzqY#%@~`_:jLK$XgMB!?*U)(ZI|\/,
proibido35. Peixe morto -
JQWzqY#%@~`_:jLK$XgMB!?*U)(ZI|\/,[
proibidoUm dos poucos trechos para gerar uma nova linha posteriormente.
36. Rebmu -
JQWzqY#%@~`_:jLK$XgMB!?*U)(ZI|\/,[]
proibido37. Tcl -
JQWzqY#%@~`_:jLK$XgMB!?*U)(ZI|\/,[]P
proibido38. Era uma vez um peixe chamado Fred -
JQWzqY#%@~`_:jLK$XgMB!?*U)(ZI|\/,[]P"
proibidoImprime selênio.
39. BrainFNORD -
JQWzqY#%@~`_:jLK$XgMB!?*U)(ZI|\/,[]P"F
proibidoImprime nitrogênio.
40. Texto -
JQWzqY#%@~`_:jLK$XgMB!?*U)(ZI|\/,[]P"Fl
proibido41. J -
JQWzqY#%@~`_:jLK$XgMB!?*U)(ZI|\/,[]P"Fln
proibido42. Pi -
JQWzqY#%@~`_:jLK$XgMB!?*U)(ZI|\/,[]P"Fln'
proibidoImprime o tântalo.
43. Marbelous -
JQWzqY#%@~`_:jLK$XgMB!?*U)(ZI|\/,[]P"Fln'.
proibidoImprime cloro. Isso depende do uso de espaços para células vazias. Intérprete Marbelous
44. DNA # -
JQWzqY#%@~`_:jLK$XgMB!?*U)(ZI|\/,[]P"Fln'.}
proibidoImprime tálio.
45. oOo -
JQWzqY#%@~`_:jLK$XgMB!?*U)(ZI|\/,[]P"Fln'.}G
proibidoImprime bromo.
46. ABC -
JQWzqY#%@~`_:jLK$XgMB!?*U)(ZI|\/,[]P"Fln'.}GO
proibidoImprime estanho. Observe que todos os intérpretes do esolang estão indisponíveis. No entanto, a implementação do 4chan escrita em Scheme funciona (# 59).
47. WASD -
JQWzqY#%@~`_:jLK$XgMB!?*U)(ZI|\/,[]P"Fln'.}GOC
proibidoImprime ítrio.
48. Super Stack! -
JQWzqY#%@~`_:jLK$XgMB!?*U)(ZI|\/,[]P"Fln'.}GOCw
proibidoImprime arsênico.
49. Golunar -
JQWzqY#%@~`_:jLK$XgMB!?*U)(ZI|\/,[]P"Fln'.}GOCws
proibidoImprime lítio.
50. Unário -
JQWzqY#%@~`_:jLK$XgMB!?*U)(ZI|\/,[]P"Fln'.}GOCws1
proibidoA fonte é
0
repetidavezes.
Imprime Hassium.
51. Linguagem -
JQWzqY#%@~`_:jLK$XgMB!?*U)(ZI|\/,[]P"Fln'.}GOCws10
proibidaA fonte é
>
repetidavezes.
Imprime Bohrium.
A maioria dos idiomas ímpares usados pode ser encontrada no wiki do esolangs .
Observe que todos os trechos de brainfuck (e derivados de brainfuck) foram escritos com células de 8 bits em mente.
fonte
2
era muito estranho para a linguagem Pi, então eu a executei no meu intérprete ( migl.io/projects/pi ), na verdade ela retornaª·ÄÊcnw
.2
é repetido muito, pois para qualquer dígito de pi maior ou igual a3
, ele representa+
. O código Pi usado na minha resposta requer células de 8 bits (começa diminuindo 0) e produz a saída correta no interpretador na página esolang do Pi .2024 idiomasAqui está algo para fazer a bola rolar. Decidi fazer os elementos em ordem, porque não conheço idiomas suficientes para que a ordem seja importante.
1. C # - nenhum proibido
2. PHP -
W
proibido3. QBasic -
W$
proibido4. Script de lote do Windows -
W$?
proibido5. Brainf *** -
W$?&
proibidoSaídas Boro.
6. C ++ -
W$?&+
proibido7. Befunge -
W$?&+<
proibidoProduz nitrogênio.
8. Bash -
W$?&+<@
proibido9. Sisi -
W$?&+<@>
proibido10. C -
W$?&+<@>9
proibido11. Lisp comum -
W$?&+<@>9,
proibido12. Zephyr -
W$?&+<@>9,#
proibido13. Prolog -
W$?&+<@>9,#\
proibido( Teste aqui .)
14. Java -
W$?&+<@>9,#\:
proibido15. Golfscript -
W$?&+<@>9,#\:.
proibido16. Pitão -
W$?&+<@>9,#\:.]
proibido17. ActionScript -
W$?&+<@>9,#\:.]|
proibido18. PowerShell -
W$?&+<@>9,#\:.]|;
proibidoFelizmente, os comandos do PowerShell podem ser escritos em letras minúsculas, evitando o proibido
W
.19. JavaScript -
W$?&+<@>9,#\:.]|;-
proibido20. Python 3 -
W$?&+<@>9,#\:.]|;-"
proibido21. Python 2 -
W$?&+<@>9,#\:.]|;-"(
proibido22. Perl -
W$?&+<@>9,#\:.]|;-"('
proibido23. Ruby -
W$?&+<@>9,#\:.]|;-"('{
proibido24. CJam -
W$?&+<@>9,#\:.]|;-"('{!
proibidoSaídas de cromo.
)
incrementos foram usados para evitar os 9 proibidos em 109 (m
).fonte
sed: -e expression #1, char 0: no previous regular expression
- talvez tentes/./Beryllium/
ous/^/Beryllium/
?echo -n | sed -e 's/^/Beryllium/'
.) Eu posso substituí-lo por outra coisa.23 idiomas
Decidi bater a resposta de 20 idiomas ... e agora não me incomodo em atirar aos 52.;)
1. Mathematica - nenhum proibido
2. Ruby -
J
proibido3. Python 2 -
JK
proibido4. Python 3 -
JKQ
proibido5. PHP -
JKQX
proibido6. Julia -
JKQXV
proibida7. JavaScript -
JKQXVO
proibido8. CoffeeScript -
JKQXVOY
proibido9. C -
JKQXVOYq
proibido10. C ++ -
JKQXVOYqZ
proibido11. Matlab -
JKQXVOYqZx
proibido12. Perl -
JKQXVOYqZxw
proibido13. Perl 6 -
JKQXVOYqZxwk
proibido14. Java -
JKQXVOYqZxwkf
proibido15. Marbelous -
JKQXVOYqZxwkfv
proibidoImprime
Dysprosium
.16. Lua -
JKQXVOYqZxwkfvD
proibido17. Oitava -
JKQXVOYqZxwkfvDG
proibida18. Ferrugem -
JKQXVOYqZxwkfvDGF
proibida19. Fortran -
JKQXVOYqZxwkfvDGFE
proibido20. CJam -
JKQXVOYqZxwkfvDGFEp
proibido21. Golfscript -
JKQXVOYqZxwkfvDGFEpH
proibido22. Pyth -
JKQXVOYqZxwkfvDGFEpHU
proibidoEu acho que isso deveria ser
23. Brainfuck -
JKQXVOYqZxwkfvDGFEpHUI
proibidoImprime
Beryllium
.fonte
202126 idiomasOk, vamos ver se consigo fazer algo com isso, nem mesmo tentando apontar para o primeiro lugar ... se conseguir 20 idiomas sem erros, ficarei mais do que feliz.
1. JAVA - nenhum proibido
Imprime
Hydrogen
.2. Pascal -
J
proibidoImprime
Helium
.3. C -
JP
proibidoImprime
Lithium
.4. PHP -
JPf
proibidoImprime
Beryllium
.5. C # -
JPf?
proibidoImprime
Boron
.6. PROLOG -
JPf?W
proibidoImpressões
Carbon
- testadas aqui .7. JavaScript -
JPf?W'
proibidoImprime
Nitrogen
.8. LOLCODE -
JPf?W'=
proibidoImprime
Oxygen
.9. Befunge '93 -
JPf?W'=K
proibidoImpressões
Fluorine
- testadas aqui .10. Visual Basic -
JPf?W'=K@
proibidoImprime
Neon
.11. HTML5 -
JPf?W'=K@M
proibidoImpressões
Sodium
- inspiradas nesta resposta .12. Brainfuck -
JPf?W'=K@M&
proibidoImpressões
Magnesium
- testadas aqui .13. JSFuck -
JPf?W'=K@&M<
proibidoImpressões
Aluminium
- testadas aqui .14. Bash -
JPf?W'=K@&M<[
proibidoImprime
Silicon
.15. Montagem NASM -
JPf?W'=K@&M<[!
proibidoImpressões
Phosphorus
- testadas aqui .16. D -
JPf?W'=K@&M<[!$
proibidoImprime
Chlorine
.17. Fortran '95 -
JPf?W'=K@&M<[!$d
proibidoImpressões
Argon
- testadas aqui .18. Lua -
JPf?W'=K@&M<[!$d*
proibidoImpressões
Sulfur
- testadas aqui .19. Golfscript -
JPf?W'=K@&M<[!$dt
proibidoImpressões
Potassium
- testadas aqui .20. Perl 5 -
JPf?W'=K@&M<[!$*dU
proibidoImpressões
Calcium
- testadas aqui .21. Nimrod -
JPf?W'=K@&M<[!$*dUu
proibidoImprime
Scandium
.22. Python -
JPf?W'=K@&M<[!$*dUuh
proibidoImprime
Titanium
.23. Unlambda -
JPf?W'=K@&M<[!$*dUuh;
proibidoImprime
Iron
. - testado aqui .24. Quarto -
JPf?W'=K@&M<[!$*dUuh;`
proibidoImpressões
Cobalt
- testadas aqui .25. Lua -
JPf?W'=K@&M<[!$*dUuh;`\
proibidoImpressões
Nickel
- testadas aqui26. Emoticon -
JPf?W'=K@&M<[!$*dUuh;`\p
proibidoImpressões
Zinc
- testadas aquiOh, bem, acho que isso é o suficiente para mim.
fonte
s/Nytrogen/Nitrogen/g
; caso contrário, bom trabalho (e adereços para usar Pascal, Fortran e Assembly).