Натхненний я не мовою, яку ви шукаєте!
Виклик
Виберіть дві різні мови програмування та напишіть програму, яка друкує наступний рядок у stdout (або еквівалент):
This program errors out in <the current language> :P
а потім генерує різного роду помилки в кожній з двох мов.
Правила
Деякі правила взяті з початкового завдання.
- У висновку назви мови повинні точно слідувати:
- Ім'я, вказане в TIO , необов'язково виключаючи номер версії та / або ім'я реалізації (наприклад, якщо ви використовуєте
JavaScript (Node.js)
як одну зі своїх мов, ви можете використовуватиJavaScript
для свого імені мови, але ніJS
абоJavascript
). - Повна назва на офіційному веб-сайті (або GitHub repo), якщо ваша мова вибору не доступна в TIO.
- Ім'я, вказане в TIO , необов'язково виключаючи номер версії та / або ім'я реалізації (наприклад, якщо ви використовуєте
- Жодна програма не повинна брати будь-які дані від користувача.
- Ви можете використовувати коментарі на будь-якій мові.
- Дві різні версії однієї мови вважаються різними мовами.
- Якщо це зроблено, програма повинна вивести основний номер версії, а якщо вона працює на двох різних другорядних версіях, також повинна повідомити про другорядну версію.
- Не слід використовувати попередньо вбудовані функції версій (сюди входять змінні, які вже були оцінені під час виконання).
- Два різних прапори командного рядка на одній мові також враховуються як різні мови відповідно до цього мета-консенсусу , до тих пір, поки прапори не включають фрагменти коду (наприклад,
-Dblahblah...
в C).- Якщо це зроблено, програма також повинна вивести використаний прапор.
- Дві помилки вважаються різними, якщо обидві помилки не породжені однаковою семантикою (наприклад, "поділ на нуль", "помилка сегментації" або "індекс поза діапазоном").
- Якщо час виконання мови не виходить після помилки, але повідомляє про помилку якимось чином користувачеві, це дійсна помилка.
- Якщо мова не дискримінує повідомлення про помилки, але має відомий перелік причин, які викликають помилку, ви повинні вказати причину, а не повідомлення про помилку.
Прикладом є><>
лише одне повідомлення про помилкуsomething smells fishy...
, але на вікі-сторінці esolangs є список причин помилок.
- Помилка синтаксису не допускається, якщо вона не генерується за допомогою виклику
eval()
або подібного. - Додавати щось вручну (через
throw
(JS),raise
(Python),die
(Perl) або подібне) дозволено, але всі вони розглядаються як один вид помилок. - Помилка недійсної команди в 2D або golflangs також допускається (і трактується як один вид помилок).
Приклади
Пітон і Рубі
- Python:
This program errors out in Python :P
для stdout, а потім невизначений ідентифікатор - Ruby:
This program errors out in Ruby :P
для stdout, потім індекс поза межами
C89 і C99
- C89:
This program errors out in C 89 :P
до stdout, потім ділення на нуль - C99:
This program errors out in C 99 :P
виведення, а потім сегментація
Зауважте, що номер версії завжди повинен бути відокремлений пробілом від назви мови.
Python 2.7.9 та Python 2.7.10
- Python 2.7.9:
This program errors out in Python 2.7.9 :P
для stdout, потім синтаксична помилка на eval - Python 2.7.10:
This program errors out in Python 2.7.10 :P
для stdout, потім ключова помилка на dict
Perl і Perl -n
- Perl:
This program errors out in Perl :P
для stdout, а потім недійсний формат часу - Perl
-n
:This program errors out in Perl -n :P
для stdout, а потім спробуйте відкрити файл, який не існує
Умова виграшу
Це код-гольф , тому виграє найкоротший код у байтах. Але вам завжди рекомендується розмістити відповідь, яка є цікавою або цікавою, навіть якщо вона не дуже коротка.
This program errors out in ...
містити змішані вкладки / пробіли, а не просто пробіли?