5 мов, 249 байт
Примітка: \r
і \e
є в буквальному сенсі перекладу рядка і екранують символи, але \x5b
має бути , як-інакше Рубін скаржиться на класі символів в регулярних виразах.
Трохи запізнюючись на вечірку, і жодним чином не переможець, але я почав працювати над поліглотом для виклику подяки і відчув, що може бути трохи пізно, тому перетворив це на це!
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
.
Ruby: 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
тому що правильний операнд до /
повинен бути a Fixnum
. Після цього ми визначаємо функцію input()
та змінну True
і False
містимо їх французькі аналоги і, нарешті, починаємо рядок, '
який продовжується на наступний рядок. Нарешті , ми створюємо масив , a
який містить "Vrai"
і "Faux"
виберіть їх з допомогою input()
номера ред 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
в 0
або 1
.
PHP: Ekte
/Falsk
die("\r\e\x5bK".(fgetc(STDIN)?Ekte:Falsk));
Оскільки PHP виконує лише код між <?...?>
усім іншим, виводиться як є, тому наш код тут просто друкує подачу рядків (щоб повернути нас на початок поточного рядка) та послідовність відходу ANSI, щоб очистити до кінця поточного рядок, за яким слід Ekte
або Falsk
залежно від того, вхідний знак ( 0
або 1
) є правдоподібним або хибним.