Costruisci un poliglotta alfabetico
Come TIO può mostrare , ogni lettera dell'alfabeto latino è rappresentata quando si tratta di lingue. Per ogni lettera esiste almeno 1 linguaggio di programmazione il cui nome inizia con quella lettera. Il tuo compito è creare un poliglotta per dimostrarlo.
Il tuo programma dovrebbe essere eseguibile tra 2 e 26 lingue diverse, ognuna delle quali inizia con una lettera diversa. Tuttavia, se il tuo programma viene eseguito in \$N\$lingue, le lingue utilizzate devono avere la prima \$N\$lettere dell'alfabeto come prima lettera dei loro nomi. Così, se il programma viene eseguito in 5 lingue, le lingue devono iniziare con A
, B
, C
, D
e E
. (es. A Pear Tree , BrainSpace , C ++ , Dash e Enlist )
Il programma non dovrebbe ricevere input e restituire una stringa costante: l'alfabeto (non rilevante, in ordine), ma con la lettera del nome della lingua rimossa. Quindi la lingua che inizia con A
dovrebbe essere visualizzata BCDEFGHIJKLMNOPQRSTUVWXYZ
(o la versione minuscola equivalente). Il case non deve essere coerente per lingue diverse, ma lo fa tra le corse nella stessa lingua.
Qualsiasi lingua è un gioco leale, a condizione che non vengano ripetute lettere. Questo esclude l'utilizzo di versioni differenti per la maggior parte dei linguaggi (ad esempio Python 2 vs Python 3), ma questo è solo una conseguenza dell'avere lettere uniche. Scherzi a parte e In realtà, ad esempio, sono considerate versioni diverse, ma possono essere utilizzate entrambe nella stessa risposta poiché iniziano con caratteri diversi.
Se si utilizzano linguaggi con tabelle codici personalizzate, come standard, i byte devono corrispondere tra i programmi, non i caratteri.
Le presentazioni vengono valutate in base al numero di lingue utilizzate, con un elemento decisivo del codice più breve.
Risposte
AsciiDots , Bash , Cardinal , Dash , evil , fish , goruby , Haystack , Implicit , J-uby , ksh , Ly , mksh , Numberwang , OSH , Python 3 , QuadR , Ruby , Super Stack! , Taco , Unefunge-98 (Pyfunge) , V (Vim) , Wumpus , xonsh , yash , Zsh , 1009 byte
9 shell, 3 rubini, alcuni linguaggi 2D (e 1D!) E molti linguaggi che ho imparato proprio per questa sfida. Mi è piaciuta molto questa sfida e ho imparato alcune nuove lingue e funzionalità. Mi è piaciuto trovare un modo più breve rispetto alla semplice stringa grezza in alcune lingue (in alcune lingue la generazione della stringa sembrava più lunga) e anche provare a riutilizzare la s
variabile il maggior numero di volte possibile è stato divertente. Ho anche cercato di mantenere il numero di byte più basso possibile. Se trovo il tempo e l'inclinazione, mi chiedo se invece potrei iniziare ad aggiungere alla fine le lettere dell'alfabeto ... Discorsi pazzi ...
' # "194940711909711999999999999940391270919999999999994039127zaeeeawawawawavaeeaaaaamvawvusb"' #165#1#1;.040;"ZYXWVTSRQPONMLKJIHGFEDCBA"8 3*k,q"ABCDEFGIJKLMNOPQRSTUVWXYZ"o¡72"8:é9:é8++:90+1®;65µ
'\&p"A""K"R"M""Z"R&o;';# x%"ABDEFGHIJKLMNOPQRSTUVWXYZ"x.-$"BCDEFGHIJKLMNOPQRSTUVWXYZ" 0 65 65 if pop dup dup 83 sub if pop outputascii 0 fi pop 1 add dup 91 sub fi "ZYXVUTSRQPONMLKJIHGFEDCBA"#25&o @"ABCDEFGHIJKLMNOPQRSUVWXYZ" s="ABCDEFGHIJKLMNOPQRSTUVWXYZ";0#' 0//1; try:echo -n;print(s[0:23]+"YZ"); except:print(s[0:15]+s[16:]);"""/.__id__;begin ~:*;puts s.gsub ?J,"";rescue;begin A;puts s.gsub ?G,"";rescue;puts s.gsub ?R,"";end;end;' [ -z $s ]&&echo ABCDEGHIJKLMNOPQRSTUVWXYZ&&exit;echo `[ $status = 1 ]&&echo \${s/Z/}&&exit;[ \e =~ e ]&&echo \${s/Y/}&&exit;\[ -z \$- \]&&echo ABC\${s#ABCD}&&exit;[ -z \$BASHPID ]&&echo \${s/K/}&&exit;[ -z $_OVM_PATH ]||echo $s|tr -d O;[ -z $_OVM_PATH ]||exit;[[ -n $USER_ID ]]&&echo \${s/M/}||echo \${s/B/}`;';/
('Q'⎕R'')⎕A⋄'\} #<esc>ggdG¬AZ:s/#\|V//"""#\'⍵
AsciiDots
Il codice rilevante è:
.-$"BCDEFGHIJKLMNOPQRSTUVWXYZ"
Questo deve essere avvolto in [
... ]
per evitare che [Extended Brainfuck Type I] emetta rifiuti prima della stringa desiderata a causa del .
.
Provalo online!
Bash
Il codice rilevante è:
s="ABCDEFGHIJKLMNOPQRSTUVWXYZ";0#'...'
[ -z $s ]&&echo ABCDEGHIJKLMNOPQRSTUVWXYZ&&exit;echo `[ $status = 1 ]&&echo \${s/Z/}&&exit;[ \e =~ e ]&&echo \${s/Y/}&&exit;\[ -z \$- \]&&echo ABC\${s#ABCD}&&exit;[ -z \$BASHPID ]&&echo \${s/K/}&&exit;[ -z $_OVM_PATH ]||echo $s|tr -d O;[ -z $_OVM_PATH ]||exit;[[ -n $USER_ID ]]&&echo \${s/M/}||echo \${s/B/}`;'...' #
Questa prima riga imposta $s
l'alfabeto completo in maiuscolo, quindi -z $s
è falsa e viene saltata. $status
non è impostato, \e
è trattato come un escape, non come una \
e e
, $BASHPID
è impostato, $_OVM_PATH
non $USER_ID
è e non è impostato, quindi B
viene sostituito con la stringa vuota in $s
( ${s/B/}
) e echo
viene eliminato.
Provalo online!
Cardinale
Il codice rilevante è:
x%"ABDEFGHIJKLMNOPQRSTUVWXYZ"x
I cursori si generano da %
e sono terminati da x
s. Questo doveva essere spostato leggermente per evitare un output aggiuntivo.
Provalo online!
Dash
Il codice rilevante è:
s="ABCDEFGHIJKLMNOPQRSTUVWXYZ";0#'...'
[ -z $s ]&&echo ABCDEGHIJKLMNOPQRSTUVWXYZ&&exit;echo `[ $status = 1 ]&&echo \${s/Z/}&&exit;[ \e =~ e ]&&echo \${s/Y/}&&exit;\[ -z \$- \]&&echo ABC\${s#ABCD}&&exit;[ -z \$BASHPID ]&&echo \${s/K/}&&exit;[ -z $_OVM_PATH ]||echo $s|tr -d O;[ -z $_OVM_PATH ]||exit;[[ -n $USER_ID ]]&&echo \${s/M/}||echo \${s/B/}`;'...' #
Come per Bash, questo primo set $s
sarà l'alfabeto completo in maiuscolo. così -z $s
è falso. $status
è vuoto, \e
è una sequenza di escape e non corrisponde e
, ma $-
è vuoto in Dash in modo che il condizionale sia soddisfatto e noi echo
out ABC
seguito da $s
con il prefisso ABCD
rimosso ( ${s#ABCD}
).
Provalo online!
il male
Il codice rilevante è:
zaeeeawawawawavaeeaaaaamvawvusb
Provalo online!
pesce
Il codice rilevante è:
s="ABCDEFGHIJKLMNOPQRSTUVWXYZ";0#'...'
[ -z $s ]&&echo ABCDEGHIJKLMNOPQRSTUVWXYZ&&exit;echo `[ $status = 1 ]&&echo \${s/Z/}&&exit;[ \e =~ e ]&&echo \${s/Y/}&&exit;\[ -z \$- \]&&echo ABC\${s#ABCD}&&exit;[ -z \$BASHPID ]&&echo \${s/K/}&&exit;[ -z $_OVM_PATH ]||echo $s|tr -d O;[ -z $_OVM_PATH ]||exit;[[ -n $USER_ID ]]&&echo \${s/M/}||echo \${s/B/}`;'...' #
In fish, le variabili non vengono assegnate tramite la s=...
sintassi, quindi $s
è vuoto, il che significa che il primo condizionale viene raggiunto, la stringa richiesta viene echo
eliminata e quindi exit
chiamata.
Provalo online!
goruby +--disable=gems
Questo non è disponibile su TIO, ma è distribuito con il sorgente Ruby ufficiale e può essere compilato (dopo i passaggi normali autoconf
e ./configure
) con make goruby
. Testato sulla versione ruby 2.8.0dev (2020-08-24T10:24:07Z master 1eb1add68a) [x86_64-linux]
. Il codice rilevante è:
s="ABCDEFGHIJKLMNOPQRSTUVWXYZ";0
0//.../.__id__;begin ~:*&?,;puts s.gsub ?J,"";rescue;begin A;puts s.gsub ?G,"";rescue;puts s.gsub ?R,"";end;end
Pagliaio
Il codice rilevante è:
"ABCDEFGIJKLMNOPQRSTUVWXYZ"o
che o
emette la stringa richiesta.
Provalo online!
Implicito
Il codice rilevante è:
¡72"8:é9:é8++:90+1®;65µ
Questo spinge l'intervallo di 1
.. 72
e unisce gli ultimi 8 elementi nella pila a una stringa, duplica la parte superiore della pila, incrementa tutti i punti di codice di 9, duplica di nuovo la pila, incrementa tutti i punti di codice nella stringa di 8, spinge 90
alla pila e concatena tutto, inverte lo stack, estrae i primi 65 elementi, quindi stampa lo stack.
Provalo online!
J-uby
Il codice rilevante è:
s="ABCDEFGHIJKLMNOPQRSTUVWXYZ";0
0//.../.__id__;begin ~:*&?,;puts s.gsub ?J,"";rescue;begin A;puts s.gsub ?G,"";rescue;puts s.gsub ?R,"";end;end
Questo condivide la dichiarazione di s
con le shell e altre implementazioni di Ruby ed .gsub
es J
dalla stringa prima di puts
inserirla finché ~:*&?,
non causa un errore.
Provalo online!
ksh
Il codice rilevante è:
s="ABCDEFGHIJKLMNOPQRSTUVWXYZ";0#'...'
[ -z $s ]&&echo ABCDEGHIJKLMNOPQRSTUVWXYZ&&exit;echo `[ $status = 1 ]&&echo \${s/Z/}&&exit;[ \e =~ e ]&&echo \${s/Y/}&&exit;\[ -z \$- \]&&echo ABC\${s#ABCD}&&exit;[ -z \$BASHPID ]&&echo \${s/K/}&&exit;[ -z $_OVM_PATH ]||echo $s|tr -d O;[ -z $_OVM_PATH ]||exit;[[ -n $USER_ID ]]&&echo \${s/M/}||echo \${s/B/}`;'...' #
$s
è impostato come le altre shell ed $status
è vuoto, \e
non corrisponde e
, $-
non è vuoto, ma $BASHPID
lo $s
è anche echo
rimuovendo K
( ${s/K/}
).
Provalo online!
Ly
Il codice rilevante è:
&p"A""K"R"M""Z"R&o;
che prima cancella lo stack, quindi spinge gli R
angoli da A
- K
e M
- Z
, prima di &o
inserire il contenuto dello stack e terminare ( ;
).
Provalo online!
mksh
Il codice rilevante è:
s="ABCDEFGHIJKLMNOPQRSTUVWXYZ";0#'...'
[ -z $s ]&&echo ABCDEGHIJKLMNOPQRSTUVWXYZ&&exit;echo `[ $status = 1 ]&&echo \${s/Z/}&&exit;[ \e =~ e ]&&echo \${s/Y/}&&exit;\[ -z \$- \]&&echo ABC\${s#ABCD}&&exit;[ -z \$BASHPID ]&&echo \${s/K/}&&exit;[ -z $_OVM_PATH ]||echo $s|tr -d O;[ -z $_OVM_PATH ]||exit;[[ -n $USER_ID ]]&&echo \${s/M/}||echo \${s/B/}`;'...' #
Come per le shell precedenti, la prima riga $s
deve essere l'alfabeto completo in maiuscolo, quindi -z $s
è falsa e viene saltata. $status
non è impostato, \e
viene trattato come un escape, non come una \
e e
, $BASHPID
è impostato, $_OVM_PATH
non lo $USER_ID
è ed è impostato, quindi M
viene sostituito con la stringa vuota in $s
( ${s/M/}
) e visualizzato come eco. Testato sulla versione 58-1
.
Numberwang
Il codice pertinente è il numero grande poiché Numberwang è solo una traslitterazione di brainfuck:
194940711909711999999999999940391270919999999999994039127
>+[+[<]>>+<+]>>+++++++++++++[<.+>-]<+>++++++++++++[<.+>-]
C'è una piccola quantità di lavoro per bilanciare 4
s ed 7
s in tutto il resto del codice, oltre ad assicurarsi che le cose appaiano nell'ordine giusto, ma niente di importante. Potrei essere in grado di salvare alcuni byte spostando cose qui intorno ...
Provalo online!
SSL
Oh guarda, un'altra conchiglia! Come per gli altri il codice rilevante è:
s="ABCDEFGHIJKLMNOPQRSTUVWXYZ";0#'...'
[ -z $s ]&&echo ABCDEGHIJKLMNOPQRSTUVWXYZ&&exit;echo `[ $status = 1 ]&&echo \${s/Z/}&&exit;[ \e =~ e ]&&echo \${s/Y/}&&exit;\[ -z \$- \]&&echo ABC\${s#ABCD}&&exit;[ -z \$BASHPID ]&&echo \${s/K/}&&exit;[ -z $_OVM_PATH ]||echo $s|tr -d O;[ -z $_OVM_PATH ]||exit;[[ -n $USER_ID ]]&&echo \${s/M/}||echo \${s/B/}`;'...' #
La differenza principale qui è che $_OVM_PATH
è impostato in OSH, ma non in Bash, quindi la stringa corretta viene modificata echo
utilizzando tr
per rimuovere il file O
.
Provalo online!
Python 3
Il codice rilevante è:
s="ABCDEFGHIJKLMNOPQRSTUVWXYZ";0
0//1;
try:echo -n;print(s[0:23]+"YZ");
except:print(s[0:15]+s[16:]);"""..."""
Questo condivide la dichiarazione di s
con le shell e Rubies ed è anche condiviso con xonsh. Il codice in try
Python ( echo -n
) fallirà , ma funziona in xonsh quindi il codice in except
viene chiamato, printing slice of s
.
Provalo online!
QuadR
Il codice rilevante è:
('Q'⎕R'')⎕A⋄'...'⍵
In QuadR, quando la riga finale contiene ⍵
tutte le righe precedenti sono modelli da abbinare e la riga finale è una funzione di trasformazione. Questa particolare funzione di trasformazione prende solo l'alfabeto ⎕A
e gli ⎕R
eplaces 'Q'
con ''
, il resto della funzione dopo l'istruzione separator ( ⋄
) serve solo a chiudere tutte le altre stringhe / commenti / letterali regex e commentare la fine della funzione.
Provalo online!
Rubino
Il codice pertinente è condiviso con J-uby e goruby:
s="ABCDEFGHIJKLMNOPQRSTUVWXYZ";0
0//.../.__id__;begin ~:*&?,;puts s.gsub ?J,"";rescue;begin A;puts s.gsub ?G,"";rescue;puts s.gsub ?R,"";end;end
Come gli altri rubini, s
è condivisa dalle conchiglie, ma in Ruby qui, sia le altre clausole ~:*&?,
e A
solleverà eccezioni in modo che la dichiarazione finale viene eseguita che sostituisce R
in s
con la stringa vuota.
Provalo online!
Super Stack!
Il codice rilevante è:
0 65 65 if pop dup dup 83 sub if pop outputascii 0 fi pop 1 add dup 91 sub fi
Questo spinge 0
e 65
(due volte) alla pila, quindi if
(che è "mentre la parte superiore della pila è veritiera" - diverso da zero), pop
s l'elemento superiore, dup
licenzia due volte il nuovo elemento superiore, lo spinge 83
e sub
lo trascina dall'elemento successivo dello stack verso il basso . Poi if
cima della pila è truthy (ad esempio non è 83 - S
), pop
esso, outputascii
, spinta 0
e termina con fi
(dal cima della pila è ora 0
). Infine, pop
push 1
, add
i due elementi superiori insieme (increment), dup
licate, push 91
e sub
tract, terminano il ciclo, che avverrà se l'ultimo carattere di output era 90
( Z
).
Provalo online!
TacO
Il codice rilevante è:
@"ABCDEFGHIJKLMNOPQRSUVWXYZ"
Provalo online!
Unefunge-98 (PyFunge)
Il codice rilevante è:
"ZYXWVTSRQPONMLKJIHGFEDCBA"8 3*k,q
Ci sono alcuni comandi prima di questo che vengono eseguiti e spingono le cose nello stack, ma fondamentalmente questo spinge semplicemente i caratteri richiesti al contrario, quindi li spinge 8
e 3
e li moltiplica. Il k
comando ripete il comando successivo TOS ( 24
) + 1
volte, emettendo la stringa e le q
uits richieste.
Provalo online!
V (vim) +-v
Il codice rilevante è:
<esc>ggdG¬AZ:s/V//"...
Che prima esce dalla modalità di inserimento ( <esc>
), va alla prima riga di testo ( gg
), cancella l'ultima riga ( dG
), inserisce le lettere da A
a Z
( ¬AZ
), quindi alla fine sostituisce V
con la stringa vuota ( :s/V//
). Il resto della riga è commentato ( "
).
Provalo online!
Wumpus
Il codice rilevante è:
...#220#1#1;.
..."ZYXVUTSRQPONMLKJIHGFEDCBA"#25&o @
Le #220#1#1
spinte 220
, 1
, 1
allo stack, quindi ;
ci sfugge di mano l'ultimo elemento, allora chiamate .
che salti l'IP per la linea 1, char 220 ed esegue. Dobbiamo farlo solo perché TacO ne impone solo uno @
nel codice.
Provalo online!
xonsh
Il codice rilevante è:
s="ABCDEFGHIJKLMNOPQRSTUVWXYZ";0
0//1;
try:echo -n;print(s[0:23]+"YZ");
except:print(s[0:15]+s[16:]);"""..."""
xonsh è una shell basata su Python, quindi il codice è condiviso con Python 3 e utilizza la stessa s
var delle shell e di Rubies. Ho usato una tecnica che ho usato in molti poliglotti con Ruby per ottenere questo codice. 0//1
È una divisione intera e echo -n
funziona bene poiché xonsh è una shell quindi l'esecuzione della stampa della parte di sottostringa richiesta s
con la stringa letterale YZ
concatenata, quindi il resto del programma è una """
stringa.
yash
Il codice rilevante è:
s="ABCDEFGHIJKLMNOPQRSTUVWXYZ";0#'...'
[ -z $s ]&&echo ABCDEGHIJKLMNOPQRSTUVWXYZ&&exit;echo `[ $status = 1 ]&&echo \${s/Z/}&&exit;[ \e =~ e ]&&echo \${s/Y/}&&exit;\[ -z \$- \]&&echo ABC\${s#ABCD}&&exit;[ -z \$BASHPID ]&&echo \${s/K/}&&exit;[ -z $_OVM_PATH ]||echo $s|tr -d O;[ -z $_OVM_PATH ]||exit;[[ -n $USER_ID ]]&&echo \${s/M/}||echo \${s/B/}`;'...' #
Come le altre shell, ma in yash, la sequenza \e
non è una sequenza di escape e quindi è solo la stringa \e
che corrisponde, e
quindi $s
viene stampata sostituendo Y
la stringa vuota ( ${s/Y/}
).
Provalo online!
Zsh +--continueonerror
Il codice rilevante è:
s="ABCDEFGHIJKLMNOPQRSTUVWXYZ";0#'...'
[ -z $s ]&&echo ABCDEGHIJKLMNOPQRSTUVWXYZ&&exit;echo `[ $status = 1 ]&&echo \${s/Z/}&&exit;[ \e =~ e ]&&echo \${s/Y/}&&exit;\[ -z \$- \]&&echo ABC\${s#ABCD}&&exit;[ -z \$BASHPID ]&&echo \${s/K/}&&exit;[ -z $_OVM_PATH ]||echo $s|tr -d O;[ -z $_OVM_PATH ]||exit;[[ -n $USER_ID ]]&&echo \${s/M/}||echo \${s/B/}`;'...' #
Zsh tollera meno gli errori in uno script rispetto alle altre shell e quindi necessita del --continueonerror
flag. In Zsh $status
viene anche impostato (anche in fish) quando un comando fallisce, quindi se $status
è 1
, $s
viene echo
eliminato, sostituendo Z
la stringa vuota ( ${s/Z/}
).
Provalo online!
Suite di convalida.
Arcyou, Braille, COW, Deadfish ~, Emoji, Forked, Gaot ++, Brainfuck iperdimensionale, 3389 byte
"BCDEFGHIJKLMNOPQRSTUVWXYZ";11+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+@1+@1+@1+@1+@1+1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@&------------------------.+.+.+.+.+.+.++.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiciciciicicicicicicicicicicicicicicicicicicicicicich⠆⠄⡒⡆⡘⠀⢕⢍⢅⠽⠵⠭⠥⠝⠕⠍⠅⢼⢴⢬⢤⢜⢔⢌⢄⠼⠴⠬⠤⠜⠌💬ABCDFGHIJKLMNOPQRSTUVWXYZ💬➡MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO Moo MoO Moo MoO MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet bleeeeet
Provalo online in Arcyou , Braille , COW , Deadfish ~ , Emoji , Forked , Gaot ++ e Hyper-Dimensional Brainfuck .
Spiegherò ogni parte di seguito:
Arcyou
"BCDEFGHIJKLMNOPQRSTUVWXYZ";
Stampa implicitamente la stringa e poi ignora tutto con un commento ;
.
Braille
⠆⠄⡒⡆⡘⠀⢕⢍⢅⠽⠵⠭⠥⠝⠕⠍⠅⢼⢴⢬⢤⢜⢔⢌⢄⠼⠴⠬⠤⠜⠌
Tutti i simboli non braille vengono ignorati, quindi questa è una scelta facile.
MUCCA
MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO MoO Moo MoO Moo MoO MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo MoO Moo
Tutti i gettoni non-moo vengono ignorati, rendendo anche questo facile. Usiamo anche un moo-exit ( Moo
) in modo che se avessimo accidentalmente un token moo in futuro non lo eseguiremo.
Deadfish ~
iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiciciciicicicicicicicicicicicicicicicicicicicicicich
Utilizza i
per incrementare, o
produrre e h
fermare, il che significa che non interpretiamo token futuri.
Emoji
💬ABCDFGHIJKLMNOPQRSTUVWXYZ💬➡
Tutti i token non emoji vengono ignorati, rendendo questa un'altra scelta facile.
Biforcuta
11+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+@1+@1+@1+@1+@1+1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@&
Questa lingua ha molti segni, ma si ferma sul &
significato che possiamo inserirla presto. Il "BCDEFGHIJKLMNOPQRSTUVWXYZ";
davanti di Arcyou funge da no-op.
Gaot ++
baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bleeeeeeeeeet bleeeeet
Tutti i gettoni non pecora vengono ignorati, rendendo questa un'altra scelta facile. Spero che le mucche e le pecore possano andare d'accordo.
Brainfuck iperdimensionale
11+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+1+@1+@1+@1+@1+@1+1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@1+@&------------------------.+.+.+.+.+.+.++.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.
Fondamentalmente brainfuck con qualche comando extra che possiamo ignorare. Si noti che usiamo parte della soluzione Forked come antipasto.
Aheui (esotopo) , Brainfuck , Canvas , 127 byte
밤밦뚜
나타뺘우차빠빠빠
떠벓벓벅멓더희뎌
>+[+[<]>>+<+]>.+>>++++[<++++++>-]<[<+.>-]
ABDEFGHIJKLMNOPQRSTUVWXYZ
Provalo online in Aheui , Brainfuck e Canvas !
Solo una banale soluzione di tre linguaggi che ignorano completamente il codice dell'altro.
- Aheui ignora tutti i caratteri non coreani (Hangul).
- Brainfuck ignora tutti i caratteri che non sono istruzioni di Brainfuck
+-.,<>[]
. - Canvas tratta tutti i caratteri ASCII come stringhe letterali e stampa l'ultima riga.
axo , Befunge-93 , Canvas , Deadfish ~ , 104 byte
"%A","EDC",,,"F">::,"Z"-|
{>B">[[("Z"-#%\{i}}dddci@
cici^icici +1<{c^i}{ci+1<}
ABDEFGHIJKLMNOPQRSTUVWXYZ
Prova axo online! Prova Befunge-93 online! Prova Canvas online! Prova Deadfish ~ online!
Spiegazioni
axo
"%
>B">[[("Z"-#%\
^ +1<
Attiva la modalità stringa, preme la B, quindi inizia a stampare e incrementare quella B fino a diventare una Z.
Befunge-93
"%A","EDC",,,"F">::,"Z"-|
@
^ +1<
Stampa ACDE, premi una F, stampa e incrementalo finché non diventa una Z.
Tela
Canvas stampa l'ultima riga.
Deadfish ~
{{i}}dddciciciicicic{ci}{ci}
AlphaBeta , brainfuck , Cavolfiore , Dreaderef , emotifuck , 413 byte
ebbbkiigZUaCILQ++++++++[>++++++++<-]>+.+<+++++[<+++++>-]<-[->>+.<<]deref16 4deref?7bool?9?7 13chro?add1 21 16deref100-1"abcefghijklmnopqrstuvwxyz"\;(print abdefghijklmnopqrstuvwxyz)🔥😂😂😂😂😂😂😂😂🌚🔥😂😂😂😂😂😂😂😂💯💩🐸🔥😂💞😂💞😂💞😂💞😂💯😂😂😂🌚💯😂😂😂😂😂😂😂🔥💩🐸💯🌚💩🔥🔥😂💞💯💯🐸
Prova online AlphaBeta , Brainfuck , Cauliflower , Dreadref , emotifuck !
AlphaBeta
La parte rilevante è
e ;add 100 to register 1
bbb ;subtract 3 from register 1 (=97)
k ;add 100 to register 2
ii ;add 20 to register 2
g ;add 1 to register 2 (=121)
ZU ;add 10 to position register
;loop: prints 'bcd...xyz'
a ;add 1 to register 1
C ;set value of register to register 1
I ;set value of memory to register 3
L ;print value in memory as char
Q ;if reg1 <= reg2, jump to stored position (10)
Non ci sono commenti in AlphaBeta , il che significa che la maggior parte delle lettere maiuscole deve essere evitata, poiché interrompono le cose e gli errori vengono stampati su stdout .
brainfuck
++++++++[>++++++++<-]>+ ;calculate 65
.+ ;print A and increment
<+++++[<+++++>-]<- ;push 24
[->> <<] ;24 times:
+. ; increment and print
Poiché Brainfuck ignora tutti gli altri personaggi, ciò non causa ulteriori problemi.
Cavolfiore
Non ho trovato alcuna buona documentazione su questa lingua, quindi si trattava principalmente di tentativi ed errori:
\; ;escaped comment?
(print abdefghijklmnopqrstuvwxyz) ;print string
Dreaderef
La parte rilevante è
deref16 4deref?7bool?9?7 13chro?add1 21 16deref100-1"abcefghijklmnopqrstuvwxyz"\;
Questo è adattato da Hello World nella documentazione . I ;
commenti fuori il resto della linea.
emotifuck
🔥😂😂😂😂😂😂😂😂🌚🔥😂😂😂😂😂😂😂😂💯💩🐸🔥😂💞😂💞😂💞😂💞😂💯😂😂😂🌚💯😂😂😂😂😂😂😂🔥💩🐸💯🌚💩🔥🔥😂💞💯💯🐸
è equivalente al programma brainfuck
++++++++[>++++++++<-]>+.+.+.+.+<+++[<+++++++>-]<[->>+.<<]
AWK , Bash , 68 byte
echo ACDEFGHIJKLMNOPQRSTUVWXYZ
END{print"BCDEFGHIJKLMNOPQRSTUVWXYZ"}
Provalo online (AWK)!
Provalo online (Bash)!