Постройте алфавитный полиглот
Как показывает TIO , каждая буква латинского алфавита представлена, когда речь идет о языках. На каждую букву приходится как минимум 1 язык программирования, имя которого начинается с этой буквы. Ваша задача - создать полиглота, чтобы это продемонстрировать.
Ваша программа должна работать на от 2 до 26 различных языков, каждый из которых начинается с другой буквы. Однако, если ваша программа работает в \$N\$языки, используемые языки должны иметь первый \$N\$буквы алфавита как первая буква их имен. Так что, если ваша программа работает на 5 языках, языки должны начинаться с A
, B
, C
, D
и E
. (например, A Pear Tree , BrainSpace , C ++ , Dash и Enlist )
Ваша программа не должна принимать никаких входных данных и выводить постоянную строку: алфавит (без учета регистра, по порядку), но с удаленной буквой из названия языка. Таким образом, A
должен выводиться язык, начинающийся с BCDEFGHIJKLMNOPQRSTUVWXYZ
(или эквивалентная версия в нижнем регистре). Регистр не обязательно должен быть согласованным для разных языков, но это так между запусками на одном языке.
Любые языки - это честная игра, пока не повторяются буквы. Это исключает использование разных версий для большинства языков (например, Python 2 против Python 3), но это только следствие наличия уникальных букв. Например, «серьезно» и «на самом деле» считаются разными версиями, но обе могут использоваться в одном ответе, поскольку они начинаются с разных символов.
При использовании языков с настраиваемыми кодовыми страницами, как обычно, между программами должны совпадать байты, а не символы.
Представленные материалы оцениваются по количеству используемых языков с указанием кратчайшего кода.
Ответы
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 , йаш , ЗШ , 1009 байтов
9 оболочек, 3 рубина, несколько языков 2D (и 1D!) И множество языков, которые я выучил только для этой задачи. Мне очень понравилось это задание, я выучил несколько новых языков и функций. Мне нравилось находить более короткий способ, чем просто необработанная строка на некоторых языках (на некоторых языках генерация строки казалась длиннее), и пытаться повторно использовать s
переменную как можно больше раз было весело. Я также старался, чтобы количество байтов было как можно меньше. Если я найду время и склонность, интересно, могу ли я вместо этого начать добавлять буквы алфавита в конец ... Безумный разговор ...
' # "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
Соответствующий код:
.-$"BCDEFGHIJKLMNOPQRSTUVWXYZ"
Это нужно обернуть в [
..., ]
чтобы [Extended Brainfuck Type I] не выводил мусор перед желаемой строкой из-за наличия .
.
Попробуйте онлайн!
Баш
Соответствующий код:
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
как полный алфавит в верхнем регистре, поэтому -z $s
она ложна и пропускается. $status
не задано, \e
рассматривается как escape, а не \
и e
, $BASHPID
установлено, не задано $_OVM_PATH
и $USER_ID
не задано, поэтому B
заменяется пустой строкой в $s
( ${s/B/}
) и echo
удаляется.
Попробуйте онлайн!
Кардинал
Соответствующий код:
x%"ABDEFGHIJKLMNOPQRSTUVWXYZ"x
Курсоры появляются из %
и заканчиваются символом x
s. Это нужно было немного сдвинуть, чтобы предотвратить дополнительный вывод.
Попробуйте онлайн!
Тире
Соответствующий код:
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/}`;'...' #
Согласно Bash, сначала устанавливается $s
полный алфавит в верхнем регистре. так -z $s
это ложь. $status
пусто, \e
является последовательность символов и не соответствует e
, но $-
пусто в тире , так что условно удовлетворяется , и мы echo
из ABC
следуют $s
с префиксом ABCD
удалены ( ${s#ABCD}
).
Попробуйте онлайн!
злой
Соответствующий код:
zaeeeawawawawavaeeaaaaamvawvusb
Попробуйте онлайн!
рыбы
Соответствующий код:
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/}`;'...' #
В Fish переменные не назначаются через s=...
синтаксис, поэтому $s
пустое значение означает, что выполняется первое условное выражение, требуемая строка echo
удаляется, а затем exit
вызывается.
Попробуйте онлайн!
Горубий +--disable=gems
Это недоступно на TIO, но распространяется с официальным исходным кодом Ruby и может быть скомпилировано (после нормального autoconf
и ./configure
шагов) с помощью make goruby
. Проверено на версии ruby 2.8.0dev (2020-08-24T10:24:07Z master 1eb1add68a) [x86_64-linux]
. Соответствующий код:
s="ABCDEFGHIJKLMNOPQRSTUVWXYZ";0
0//.../.__id__;begin ~:*&?,;puts s.gsub ?J,"";rescue;begin A;puts s.gsub ?G,"";rescue;puts s.gsub ?R,"";end;end
Стог сена
Соответствующий код:
"ABCDEFGIJKLMNOPQRSTUVWXYZ"o
который o
выводит требуемую строку.
Попробуйте онлайн!
Неявный
Соответствующий код:
¡72"8:é9:é8++:90+1®;65µ
Это подталкивает диапазон 1
... 72
и объединяет последние 8 элементов в стеке в строку, дублирует верхнюю часть стека, увеличивает все кодовые точки на 9, снова дублирует стек, увеличивает все кодовые точки в строке на 8, помещает 90
в стек и объединяет все, переворачивает стопку, извлекает верхние 65 элементов, затем распечатывает стопку.
Попробуйте онлайн!
J-uby
Соответствующий код:
s="ABCDEFGHIJKLMNOPQRSTUVWXYZ";0
0//.../.__id__;begin ~:*&?,;puts s.gsub ?J,"";rescue;begin A;puts s.gsub ?G,"";rescue;puts s.gsub ?R,"";end;end
Это разделяет декларацию s
с оболочками и другими реализациями Ruby , и и .gsub
з J
от струны до puts
ИНГ его, пока ~:*&?,
не вызывает ошибку.
Попробуйте онлайн!
кш
Соответствующий код:
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
установлен как другие оболочки и $status
пуст, \e
не совпадает e
, $-
не пуст, но $BASHPID
так $s
же echo
удален K
( ${s/K/}
).
Попробуйте онлайн!
Ly
Соответствующий код:
&p"A""K"R"M""Z"R&o;
который сначала очищает стек, затем выталкивает R
из A
- K
и M
- Z
, прежде чем &o
вывести содержимое стека и завершить ( ;
).
Попробуйте онлайн!
мкш
Соответствующий код:
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
как полный алфавит в верхнем регистре, поэтому -z $s
она ложна и пропускается. $status
не задано, \e
рассматривается как escape, а не как \
и e
, $BASHPID
установлено, $_OVM_PATH
не $USER_ID
установлено, поэтому M
заменяется пустой строкой в $s
( ${s/M/}
) и выводится эхом. Проверено на версии 58-1
.
Numberwang
Соответствующий код - это большое число, так как Numberwang - это просто транслитерация мозгового тупика:
194940711909711999999999999940391270919999999999994039127
>+[+[<]>>+<+]>>+++++++++++++[<.+>-]<+>++++++++++++[<.+>-]
Необходимо немного поработать, чтобы сбалансировать 4
s и 7
s во всем остальном коде, а также убедиться, что все отображается в правильном порядке, но ничего серьезного. Возможно, удастся сэкономить несколько байтов, перемещая вещи сюда ...
Попробуйте онлайн!
Охрана труда
Ой, смотрите, еще одна оболочка! Что касается других, соответствующий код:
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/}`;'...' #
Основное отличие в том , что $_OVM_PATH
устанавливается по охране труда, но не в Bash, так что правильная строка под echo
ред использованием , tr
чтобы удалить O
.
Попробуйте онлайн!
Python 3
Соответствующий код:
s="ABCDEFGHIJKLMNOPQRSTUVWXYZ";0
0//1;
try:echo -n;print(s[0:23]+"YZ");
except:print(s[0:15]+s[16:]);"""..."""
Это объявление используется s
совместно с оболочками и Rubies, а также совместно с xonsh. Код в try
Python ( echo -n
) не работает, но работает в xonsh, поэтому вызывается код except
, печатающий фрагменты s
.
Попробуйте онлайн!
QuadR
Соответствующий код:
('Q'⎕R'')⎕A⋄'...'⍵
В QuadR, когда последняя строка содержит ⍵
все предыдущие строки, соответствуют шаблонам, а последняя строка является функцией преобразования. Эта конкретная функция преобразования просто принимает алфавит ⎕A
и ⎕R
eplaces 'Q'
с ''
, остальные функции после разделитель операторов ( ⋄
) только для закрытия всех остальных строк / комментарии / регулярных выражений литералов и закомментируйте конец функции.
Попробуйте онлайн!
Рубин
Соответствующий код используется J-uby и 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
Как и другие рубины, s
разделяют от снарядов , но в Рубине здесь, как в других разделах ~:*&?,
и A
будет вызывать исключения , так что окончательное утверждение выполняется, заменяющие R
в s
с пустой строкой.
Попробуйте онлайн!
Супер стек!
Соответствующий код:
0 65 65 if pop dup dup 83 sub if pop outputascii 0 fi pop 1 add dup 91 sub fi
Это толкает 0
и 65
(дважды) в стек, затем if
(что означает «пока вершина стека истинна» - ненулевое значение), pop
s верхний элемент, dup
дважды лицензирует новый верхний элемент, толкает 83
и sub
перемещает его от следующего элемента стека вниз . Тогда if
вершина стека истинна (например, это не 83 - S
), pop
это ,, outputascii
push 0
и завершение с fi
(так как вершина стека сейчас 0
). Наконец, pop
push 1
, add
два верхних элемента вместе (приращение), dup
licate, push 91
и sub
tract, завершают цикл, что произойдет, если последний выходной символ был 90
( Z
).
Попробуйте онлайн!
ТакО
Соответствующий код:
@"ABCDEFGHIJKLMNOPQRSUVWXYZ"
Попробуйте онлайн!
Unefunge-98 (PyFunge)
Соответствующий код:
"ZYXWVTSRQPONMLKJIHGFEDCBA"8 3*k,q
Есть несколько команд , перед этим, которые выполняются и нажимные вещи в стеке, но в основном это просто раздвигает необходимые символы в обратном, а затем толкает 8
и 3
и умножает их. Команда k
повторяет следующую команду TOS ( 24
) + 1
раз, выводя необходимую строку и q
uits.
Попробуйте онлайн!
V (vim) +-v
Соответствующий код:
<esc>ggdG¬AZ:s/V//"...
Что первым выходит из режима вставки ( <esc>
), переходит к первой строке текста ( gg
), удаляется до последней строки ( dG
), вставляет буквы от A
до Z
( ¬AZ
), а затем, наконец, заменяется V
пустой строкой ( :s/V//
). Остальная часть строки закомментирована ( "
).
Попробуйте онлайн!
Wumpus
Соответствующий код:
...#220#1#1;.
..."ZYXVUTSRQPONMLKJIHGFEDCBA"#25&o @
В #220#1#1
толчках 220
, 1
, 1
в стек, а затем ;
выскакивают от последнего пункта , то вызовы , .
которые прыгают IP в строку 1, полукокс 220 и выполняют. Нам нужно это только потому, что TacO требует только одного @
в коде.
Попробуйте онлайн!
xonsh
Соответствующий код:
s="ABCDEFGHIJKLMNOPQRSTUVWXYZ";0
0//1;
try:echo -n;print(s[0:23]+"YZ");
except:print(s[0:15]+s[16:]);"""..."""
xonsh - это оболочка на основе Python, поэтому код используется совместно с Python 3 и использует ту же s
переменную, что и оболочки и Rubies. Я использовал технику, которую использовал во многих полиглотах с Ruby, чтобы ввести этот код. 0//1
Это целочисленное деление, и он echo -n
отлично работает, поскольку xonsh - это оболочка, поэтому выполнение печати требуемой части подстроки s
с YZ
конкатенированной литеральной строкой , затем остальная часть программы представляет собой """
строку.
трепаться
Соответствующий код:
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/}`;'...' #
Как и в других оболочках, но в Яшах, последовательность \e
не является последовательность бежать и так просто строка , \e
которая соответствует e
так $s
напечатанным Подставляя Y
пустую строку ( ${s/Y/}
).
Попробуйте онлайн!
Zsh +--continueonerror
Соответствующий код:
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 менее терпим к ошибкам в сценарии, чем другие оболочки, и поэтому требует наличия --continueonerror
флага. В Zsh $status
также установлен (в рыбе тоже) , когда команда выходит из строя, поэтому , если $status
есть 1
, то $s
это echo
эды из подставляя Z
пустую строку ( ${s/Z/}
).
Попробуйте онлайн!
Пакет для проверки.
Arcyou, шрифт Брайля, COW, Deadfish ~, Emoji, Forked, Gaot ++, Hyper-Dimensional Brainfuck, 3389 байт
"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
Попробуйте онлайн в Arcyou , шрифтом Брайля , КПС , Deadfish ~ , Emoji , раздвоенный , Gaot ++ и Hyper-Dimensional Brainfuck .
Я объясню каждую часть ниже:
Arcyou
"BCDEFGHIJKLMNOPQRSTUVWXYZ";
Неявно печатает строку, а потом игнорирует все с комментарием ;
.
Шрифт Брайля
⠆⠄⡒⡆⡘⠀⢕⢍⢅⠽⠵⠭⠥⠝⠕⠍⠅⢼⢴⢬⢤⢜⢔⢌⢄⠼⠴⠬⠤⠜⠌
Все небрайлевские символы игнорируются, поэтому это простой выбор.
Корова
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
Все токены, отличные от moo, игнорируются, что также упрощает эту задачу. Мы также используем moo-exit ( Moo
), чтобы, если у нас случайно появится токен moo в будущем, мы не запускаем его.
Мертвая рыба ~
iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiciciciicicicicicicicicicicicicicicicicicicicicicich
Используется i
для увеличения, o
вывода и h
остановки, что означает, что мы не интерпретируем будущие токены.
Эмодзи
💬ABCDFGHIJKLMNOPQRSTUVWXYZ💬➡
Все токены, не относящиеся к эмодзи, игнорируются, что делает этот выбор еще одним легким.
Раздвоенный
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+@&
В этом языке много токенов, но &
мы не можем придать ему значения на ранней стадии. "BCDEFGHIJKLMNOPQRSTUVWXYZ";
Спереди от Arcyou действует как не-оп.
Гаот ++
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
Все жетоны не овец игнорируются, что делает этот выбор еще одним легким. Я надеюсь, что коровы и овцы уживутся.
Гипермерный Brainfuck
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+@&------------------------.+.+.+.+.+.+.++.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.+.
По сути, блин с какой-то дополнительной командой, которую мы можем игнорировать. Обратите внимание, что мы используем часть решения Forked в качестве стартера.
Aheui (эзотоп) , Brainfuck , Canvas , 127 байт
밤밦뚜
나타뺘우차빠빠빠
떠벓벓벅멓더희뎌
>+[+[<]>>+<+]>.+>>++++[<++++++>-]<[<+.>-]
ABDEFGHIJKLMNOPQRSTUVWXYZ
Попробуйте онлайн в Aheui , Brainfuck и Canvas !
Просто тривиальное решение трех языков, которые полностью игнорируют код друг друга.
- Aheui игнорирует все символы не корейского происхождения (хангыль).
- Brainfuck игнорирует все символы, не являющиеся инструкциями Brainfuck
+-.,<>[]
. - Canvas обрабатывает все символы ASCII как строковые литералы и печатает последнюю строку.
axo , Befunge-93 , Canvas , Deadfish ~ , 104 байта
"%A","EDC",,,"F">::,"Z"-|
{>B">[[("Z"-#%\{i}}dddci@
cici^icici +1<{c^i}{ci+1<}
ABDEFGHIJKLMNOPQRSTUVWXYZ
Попробуйте Axo онлайн! Попробуйте Befunge-93 онлайн! Попробуйте Canvas онлайн! Попробуйте Deadfish ~ онлайн!
Пояснения
аксо
"%
>B">[[("Z"-#%\
^ +1<
Он активирует строковый режим, нажимает B, затем начинает печатать и увеличивать B, пока не станет Z.
Befunge-93
"%A","EDC",,,"F">::,"Z"-|
@
^ +1<
Распечатайте ACDE, нажмите F, распечатайте и увеличивайте его до Z.
Холст
Холст печатает последнюю строку.
Мертвая рыба ~
{{i}}dddciciciicicic{ci}{ci}
AlphaBeta , brainfuck , цветная капуста , Dreaderef , emotifuck , 413 байт
ebbbkiigZUaCILQ++++++++[>++++++++<-]>+.+<+++++[<+++++>-]<-[->>+.<<]deref16 4deref?7bool?9?7 13chro?add1 21 16deref100-1"abcefghijklmnopqrstuvwxyz"\;(print abdefghijklmnopqrstuvwxyz)🔥😂😂😂😂😂😂😂😂🌚🔥😂😂😂😂😂😂😂😂💯💩🐸🔥😂💞😂💞😂💞😂💞😂💯😂😂😂🌚💯😂😂😂😂😂😂😂🔥💩🐸💯🌚💩🔥🔥😂💞💯💯🐸
Попробуйте AlphaBeta , brainfuck , Cauliflower , Dreadref , emotifuck онлайн!
AlphaBeta
Соответствующая часть
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)
В AlphaBeta нет комментариев , а это означает, что следует избегать большинства прописных букв, поскольку они нарушают работу, а ошибки выводятся на стандартный вывод .
ебать мозги
++++++++[>++++++++<-]>+ ;calculate 65
.+ ;print A and increment
<+++++[<+++++>-]<- ;push 24
[->> <<] ;24 times:
+. ; increment and print
Поскольку brainfuck игнорирует любые другие символы, это не вызывает никаких дополнительных проблем.
Цветная капуста
Я не нашел хорошей документации по этому языку, поэтому в основном это был метод проб и ошибок:
\; ;escaped comment?
(print abdefghijklmnopqrstuvwxyz) ;print string
Dreaderef
Соответствующая часть
deref16 4deref?7bool?9?7 13chro?add1 21 16deref100-1"abcefghijklmnopqrstuvwxyz"\;
Это адаптировано из Hello World в документации . ;
Закомментирует остальную часть строки.
эмоции
🔥😂😂😂😂😂😂😂😂🌚🔥😂😂😂😂😂😂😂😂💯💩🐸🔥😂💞😂💞😂💞😂💞😂💯😂😂😂🌚💯😂😂😂😂😂😂😂🔥💩🐸💯🌚💩🔥🔥😂💞💯💯🐸
эквивалентно программе Brainfuck
++++++++[>++++++++<-]>+.+.+.+.+<+++[<+++++++>-]<[->>+.<<]
AWK , Bash , 68 байт
echo ACDEFGHIJKLMNOPQRSTUVWXYZ
END{print"BCDEFGHIJKLMNOPQRSTUVWXYZ"}
Попробуйте онлайн (AWK)!
Попробуйте онлайн (Bash)!