JavaScript (ES6) / QBasic, 84 83 байта
'';f=x=>eval(x.join`+`)/*
INPUT a
FOR i=1 TO 2
i=0
INPUT n
a=a-n
PRINT a
NEXT i
'*/
Еще одно решение с комментарием взломать!
JavaScript вычисляет сумму. Он принимает массив, содержащий числа в качестве входных данных. Выходы как функция return
. Вы можете вызвать функцию, как alert(f([10,20,30]))
.
QBasic вычисляет разницу. Неоднократно просит ввода. Как только вы вводите значение, он выводит разницу всех чисел, которые вы ввели, до момента нажатия Enterи снова запрашивает ввод. Продолжает делать то же самое до конца всего.
Как это работает?
В QBasic (язык структурированного семейства BASIC; для него не нужны номера строк), '
отмечает начало комментария, который идет до конца строки. В то время как в JavaScript он отмечает начало строки. Итак, вся первая строка помечена как комментарий в QBasic, но в JavaScript строка выполняется (и эта строка содержит часть JavaScript, которая добавляет числа, а также/*
в конце, который начинает комментарий, чтобы скрыть остальные кода QBasic из интерпретатора JavaScript.)
Код от второй строки до второй-последней строки содержит код QBasic для вычисления разности всех входных чисел (код очень понятен).
Последняя строка содержит '*/
. '
заставляет интерпретатор QBasic интерпретировать следующий код как комментарий, тогда как в JavaScript он не оказывает никакого влияния, так как является частью комментария (который был запущен в конце первой строки). Следующий код ( */
) заставляет JavaScript завершать комментарий, который был начат в первой строке, но он не выполняется в QBasic, потому что QBasic считает, что это часть комментария.
Тестовые случаи
JavaScript (добавляет):
'';f=x=>eval(x.join`+`);/*
INPUT a
FOR i=1 TO 2
i=0
INPUT n
a=a-n
PRINT a
NEXT i
'*/
console.log(f([12,5,7,2]));
QBasic (вычитает):
Перейти на этот сайт . Скопируйте и вставьте следующий код в их текстовый редактор:
1 '';f=x=>eval(x.join`+`);/*
2 INPUT a
3 FOR i=1 TO 2
4 i=0
5 INPUT n
6 a=a-n
7 PRINT a
8 NEXT i
9 '*/
Причина, по которой требуются номера строк, заключается в том, что упомянутый мной веб-сайт поддерживает только неструктурированные языки BASIC. И этот сайт - единственный приличный онлайн-переводчик бейсика, которого я смог найти. Тем не менее, выполнение кода, присутствующего в верхней части поста (код без номеров строк), должно нормально работать в любом хорошем интерпретаторе QBasic, который поддерживает структурированный BASIC, и '
в качестве начального комментария (хотя немногие этого не делают, большинство делают, хотя).
Примечания
- Это мой первый пост на полиглоте ! Я надеюсь, что это хорошо!
- Часть кода QBasic не требует,
END
потому что интерпретатор никогда не достигнет этого! (Он навсегда застрянет в бесконечном цикле; всегда требует большего ввода.)