5 языков, 249 байт
Примечание: \r
и \e
являются буквальными символами перевода строки и escape-символами, но \x5b
должны быть как есть, в противном случае Ruby жалуется на класс символов в регулярном выражении.
Немного опоздал на вечеринку и ни в коем случае не победитель, но я начал работать над полиглотом для соревнования по благодарению и почувствовал, что может быть немного поздно, поэтому превратил его в это!
q=0//1;'''<?die("\r\e\x5bK".(fgetc(STDIN)?Ekte:Falsk));?>/.to_s.ord;def input()gets.to_i;end;q=+q+0;True="Vrai";False="Faux";'+;sub a{<><1?Vals:Waar}q-
input=prompt;print=alert;True="Vero";False="Falso"//'#'''
a=[False,True];b=input();1-+1;print(a[b])
объяснение
Python: True
/False
q=0//1;'''<?die("\r\e\x5bK".(fgetc(STDIN)?Ekte:Falsk));?>/.to_s.ord;def input()gets.to_i;end;q=+q+0;True="Vrai";False="Faux";'+;sub a{<><1?Vals:Waar}q-
input=prompt;print=alert;True="Vero";False="Falso"//'#'''
a=[False,True];b=input();1-+1;print(a[b])
Здесь мы устанавливаем q
на 0//1
что 0
, то есть '''
строка , которая содержит большую часть другого кода, хранить массив , содержащим False
и True
и indicies 0
и , 1
соответственно, назначить вклад b
(который должен быть 0
или 1
для обозначения Falsy
и Truthy
) , то print
в b
й индексе a
, показывающие False
или True
.
Рубин: Vrai
/Faux
q=0//1;'''<?die("\r\e\x5bK".(fgetc(STDIN)?Ekte:Falsk));?>/.to_s.ord;def input()gets.to_i;end;q=+q+0;True="Vrai";False="Faux";'+;sub a{<><1?Vals:Waar}q-
input=prompt;print=alert;True="Vero";False="Falso"//'#'''
a=[False,True];b=input();1-+1;print(a[b])
Как и в сценарии Python, мы устанавливаем переменную q
, но в Ruby это значение равно 0 / /1;'''<?die("\r\e\x5bK".(fgetc(STDIN)?Ekte:Falsk));?>/.to_s.ord
, поскольку Ruby разбивает его на 0/
«деление на ноль», а на следующее /
- «начало литерала регулярного выражения». Используя этот литерал, я могу скрыть код PHP и начать работу с Python '''
. Мы должны добавить, .to_s.ord
потому что правильный операнд /
должен быть Fixnum
. После этого мы определяем функцию input()
и переменную True
и False
должны содержать их французские аналоги и, наконец, начинаем строку, '
которая продолжается на следующей строке. Наконец, мы создаем массив, a
который содержит "Vrai"
и, "Faux"
и выбираем их, используя input()
номер ed 0
или 1
.
Perl: Waar
/Vals
'0//1;\'\'\'<?die("\r\e\x5bK".(fgetc(STDIN)?Ekte:Falsk));?>/.to_s.ord;def input()gets.to_i;end;q}+q{0;True="Vrai";False="Faux";\'';sub a{<><1?Vals:Waar}'
input=prompt;print=alert;True="Vero";False="Falso"//\'#\'\'\'
a=[False,True];b=input();1'+1;print(a[b])
В Perl, то q=..=
, q+...+
и q-...-
блоки цитируются литералы , используя необычные разделители, в коде выше я заменил их с '...'
. Большая часть кода содержится в буквальной строке, но мы определяем sub a
(который содержит <><
!), Который проверяет, STDIN
меньше ли 1
, возвращая либо Waar
или, либо Vals
. print(a[b])
Фактически print
S результат вызова метода sub
a
с и аргументом , [b]
который является ссылкой на массив , который содержит голое слово b
.
JavaScript: Vero
/Falso
q=0//1;'''<?die("\r\e\x5bK".(fgetc(STDIN)?Ekte:Falsk));?>/.to_s.ord;def input()gets.to_i;end;q=+q+0;True="Vrai";False="Faux";'+;sub a{<><1?Vals:Waar}q-
input=prompt;print=alert;True="Vero";False="Falso"//'#'''
a=[False,True];b=input();1-+1;print(a[b])
Первая строка в основном закомментирована разделением 0//1
( //
это комментарий строки в JavaScript), поэтому мы просто установили q
на 0
. Следующая строка имеет дело с отображением функций JS на их имена Python и установкой переменных, True
а также False
для того, чтобы они были итальянскими строками. Наконец, мы выполняем то же самое, что и код Ruby, устанавливая для массива итальянских слов и выбирая с помощью input
of 0
или 1
.
PHP: Ekte
/Falsk
die("\r\e\x5bK".(fgetc(STDIN)?Ekte:Falsk));
Поскольку PHP выполняет код только между <?...?>
всеми остальными, выводится как есть, поэтому наш код здесь просто печатает перевод строки (чтобы вернуть нас в начало текущей строки) и escape-последовательность ANSI, чтобы очистить до конца текущего строка, за которой следует либо, Ekte
либо в Falsk
зависимости от того, является ли введенный символ ( 0
или 1
) истинным или ложным.