До побачення жорстокий світ!


49

Фон

Привіт гольфісти! Я хотів би вивчити всі мови програмування! Але у мене якось короткий проміжок уваги ... і копіювання всіх прикладів Hello World стає нудною ... але мені подобається вогонь! ^ ш ^

Виклик

Тож ось план! Я хочу, щоб ви всі написали найменший код, який буде компілювати, друкувати Goodbye Cruel World!та потім виходити з ладу. Або, як виклик бонус твіст, надрукувати Hello World!та завершити роботуGoodbye Cruel World!

Правила

  • Ваш рахунок буде загальним числом використаних символів. Відповідь повинна бути цілою виконаною програмою.
  • Ваша програма повинна надрукувати Goodbye Cruel World!для виведення, а потім вийти з ладу (несподівана помилка).
    • Щоб отримати бонусний бал, ви повинні Hello World!замість цього надрукувати для виведення, але повідомлення про помилку також повинно містити Goodbye Cruel World!. Якщо ви виконаєте бонусний виклик, ви можете розділити свій рахунок на 2. (Включіть! В кінці свого рахунку, якщо ви претендуєте на бонус!)
  • Поки стандартний висновок все ще друкується, а стандартна помилка все ще друкується, порядок не має значення. Тільки до тих пір, поки жоден не може перешкодити іншим траплятися.
  • Вихід повинен містити вміст вищезазначеного; "не повинна відображатися у висновку.
  • Вихід повинен містити вказаний рядок і більше нічого.
  • Звіт про збій може містити все, що завгодно, але для отримання бонусу наступний регулярний вираз повинен відповідати /Goodbye Cruel World!/mi(він же містить, ігнорує випадок / навколишній текст))
  • Струни Hello World!і Goodbye Cruel World!нечутливі до регістру, але в іншому випадку повинні виглядати точно так, як вище.
  • Якщо мова може зламатись (вона не може змінити свій вихідний код), її потрібно зламати. В іншому випадку використовуйте для мови стандартний "звіт про помилки" (тобто STDERR).

Я можу зірвати Python 3, тому я включив приклад відповіді Python 3! Тепер давайте все підпалити світ! ^ Ш ^


Коментарі не для розширеного обговорення; ця розмова переміщена до чату .
Денніс

as a bonus twist challenge, print "Hello World!" and crash with "Goodbye Cruel World!"?
Чарівний восьминога Урна

Припустимо, я працюю такою мовою, як Java, де STDOUT та STDERR, звичайно, друкуються різними потоками. Це означає, що, хоча програма в порядку, друкує "Hello world", а потім виходить з ладу, можливо, спочатку слід надрукувати слід стека ... Чи це дозволено?
Сократичний Фенікс

@SocratPhoenix Поки STDOUT все ще друкує, а STDERR все ще друкує, порядок не має значення. Тільки до тих пір, поки жоден не може перешкодити іншим траплятися.
Тезра

1
Це так весело, що я не можу перестати приймати рішення!
Adám

Відповіді:


36

Желе , 12 байт

“¿µƝɓṭỵae»Ȯ:

Спробуйте в Інтернеті!

Пояснення:

“¿µƝɓṭỵae»Ȯ:

          Ȯ     Print
“¿µƝɓṭỵae       A string...
         »      Decoded from base-250
           :    Integer division

Оскільки ціле ділення є діадією, воно неявно сприймає поточне значення ланцюга як обидва аргументи - що є рядком. Збивається, тому що очікує цілих чисел.


7
Ласкаво просимо до PPCG!
Денніс

Дякую! Я дещо ховався зараз, але це перший раз, коли я знайшов виклик, який відчув, що можу насправді вирішити гідно!
розкидання

28
Вражаюча відповідь, хоча майже всі відповіді від Jelly вражають, як через довжину, так і на те, що вам вдалося навчитися Jelly.
Грифон - Відновіть Моніку

4
A base-250 encoded stringЦе і круто страшно, що ви можете це зробити. X3
Тезра

3
Це значно коротше, ніж рядок "Прощавай жорстокий світ!" (20 байт). Божевільний ...
Адам Плочер

35

C, 43 байти

main(){puts(puts("Goodbye Cruel World!"));}

Друкує рядок, а потім намагається використовувати повернене значення в якості вказівника на друковану рядок, що підлягає друку, що викликає помилку сегментації.

Спробуйте в Інтернеті!

C, 42 байти

Дякуємо @Ruslan!

main(i){i=puts("Goodbye Cruel World!")/0;}

Спробуйте в Інтернеті!

Просто для розваги: ​​C (у 64-розрядному Linux), 149 байт

Змінено з цієї програми Hello World тут .

const int main[]={-443987883,440,113408,-1922629632,4149,1358336,84869120,15544,266023168,1869563654,1702453860,1970422560,1461742693,1684828783,33};

Спробуйте в Інтернеті!


Мені подобається такий підхід, але інструкція говорить,The answer must be a whole executable program.
Коді,

1
main(i){i=puts("Goodbye Cruel World!")/0;}смуг на один байт.
Руслан

1
Вам не потрібно i. puts("")/0;є синтаксично правильним твердженням.
rici

1
@rici Так, але це не виходить з ладу (принаймні на TIO).
Steadybox

1
@Steadybox: це оптимізація для вас.
rici

11

SOGL , 15 25 17 байт / 2 = 8,5!

Q7┌θ/²?‘■←#c℮‘o0n

Пояснення:

...‘           push "goodbye cruel world!"
    ...‘       push "hello world!"
         o     output "Hello World!"
           0n  attempt to make an array where each line is 0 characters long, making the array
               required to be infinite, which crashes (OutOfMemoryError)

(Ab) використовує той факт, що SOGL використовує STDERR як вихід налагодження, тому в ньому є багато тексту, поряд з рядком

`∑`@22: ["goodbye cruel world!"]

Якщо ви передали STDOUT ескізу Processing до файлу, "Goodbye Cruel World!" був би там.


Оскільки в виклику зазначається " Рядки Hello World!і Goodbye Cruel World!нечутливі до регістру, але в іншому випадку повинні виглядати точно так, як вище ", ви можете переграти свій код, позбувшись функції повністю і просто виведіть у всі малі регістри.
Kevin Cruijssen

@KevinCruijssen о да, дякую!
дзайма

10

> <> , 25 байт

"!dlroW leurC eybdooG">o<

В основному, він додає рядок до стеку (назад, останній у першому виході), а потім робить еквівалент:

while(1):
  pop the stack
  print the character

Якщо в стеку не залишилося жодних символів (вся рядок була надрукована), вискакуючи стек, виникає помилка


+1. Прийшов #o<"Goodbye Cruel World!", що в основному те саме.
hakr14

9

sed, 32 байт

iGoodbye Cruel World!
w/dev/full

iвставляє рядок і wзаписує у файл. /dev/fullв цьому випадку тому, що всі записи в нього повертаються ENOSPC("На пристрої не залишилося місця").

Однак для роботи ще потрібен єдиний рядок введення.

$ echo 1 | sed -f crash.sed
Goodbye, cruel world!
sed: couldn't flush /dev/full: No space left on device

3
Навіть не знав, що існує такий пристрій!
Руслан

9

Луа, 31 , 30 байт

a=-print'Goodbye Cruel World!'

вперше друкує "До побачення жорстокий світ!" а потім виходить з ладу при спробі додати нульове значення та 0.

Вихід:

Goodbye Cruel World!
input:1: attempt to perform arithmetic on a nil value

Кредит GalladeGuy на 1 байт менше


2
на ній виведено "До побачення жорстокий світ!" а потім виходить з ладу, хоча я просто думав, що просто доведеться зірватися, щоб прийняти.
eniallator

@Trebuchette Вимога: "Ваша програма повинна надрукувати" Goodbye Cruel World! ", Щоб вивести, а потім вийти з ладу", в ОП не вказано, означає чи "вихід" означає stderr, stdout, скриньку повідомлень чи будь-що з перерахованого вище.
Фарап

@Pharap О, я бачу. STDERR має значення лише якщо ви збираєтесь отримати бонус. Дякую!
Trebuchette

@Trebuchette Nope. У ньому написано: "Або, як виклик бонусів, виведіть Hello World! Та зазнайте краху з Goodbye Cruel World!". "аварія" не означає, що це суворіше, "аварія" також може означати (серед іншого) викид, який кидають. Якщо ОП не визначає це далі, воно є відкритим для тлумачення. Також деякі програми Lua не мають поняття stderr (наприклад, Lua вбудований як сценарій мови для ігор) і замість цього буде друкувати у вікні повідомлень або файлах журналу тощо.
Pharap

1
Ви можете зберегти байт, зробивши це замість цього:a=-print"Goodbye Cruel World!"
GalladeGuy

8

Пітон 3 | Оцінка: 24,5! 23 22!

print("Hello World!")+"Goodbye Cruel World!"

Надрукуйте "Hello World", ніж використовуйте недійсний оператор "+" у "Goodbye Cruel World!" до елемента повернення NoneType. (вирізати \ n \ r з попередньої версії)

Спробуйте в Інтернеті!

Пітон 3 | Оцінка: 34 30

+print("Goodbye Cruel World!")

Роздрукуйте до побачення, ніж зробіть недійсну унарну + операцію над результатом друку (NoneType)

Спробуйте в Інтернеті!


+"Goodbye Cruel World!"коротший на 3 байти і видає TypeError.
Габор Фекете

print("Goodbye Cruel World!")/0коротше на другий (3 байти?)
matsjoyce

@matsjoyce Я побоювався, що перед друком вийде крах. Але оскільки вона друкується першою, я просто зроблю
одинаковий

24
2.585e + 22 - це досить велика оцінка ... ти впевнений, що ти не зміг би більше зіграти?
тускіоми

1
@tuskiomi "!" означає, що остаточний рахунок змінюється бонусним викликом.
Тезра



6

CJam , 34 байти, оцінка 17!

"Goodbye Cruel World!"D>"Hello"ooo

Спробуйте в Інтернеті! (Див. Панель налагодження для STDERR)

Пояснення

"Goodbye Cruel World!"              e# Push "Goodbye Cruel World!".
                      D>            e# Slice after index 13: " World!".
                        "Hello"o    e# Push "Hello" and print it.
                                o   e# Print " World!".
                                 o  e# Attempt to print from an empty stack. Crashes.

У TIO він генерує це повідомлення про помилку:

"Goodbye Cruel World!"D>"Hello"ooo
                                 ^
RuntimeException: The stack is empty
Java exception:
java.lang.RuntimeException: The stack is empty
    at net.aditsu.cjam.CJam.pop(CJam.java:75)
    at net.aditsu.cjam.Op1.run(Op1.java:10)
    at net.aditsu.cjam.Block.run(Block.java:304)
    at net.aditsu.cjam.CJam.runCode(CJam.java:210)
    at net.aditsu.cjam.CJam.main(CJam.java:240)

6

C Препроцесор, 27 байт

#error Goodbye Cruel World!

Вихід:

fatal error C1189: #error:  Goodbye Cruel World!

1
Можливо, ви зможете її скоротити ще й просто#Goodbye Cruel World!
хлопчик-абрикос

@apricotboy Це все-таки призведе до помилки, але повне повідомлення про помилку "до побачення жорстокий світ" не виводиться компілятором (принаймні на MSVC)
Govind Parmar

@Gorvind Parmar ах. Ну, це точно на gcc: i.imgur.com/qmGnoJv.png
абрикосовий хлопчик

6

APL (Dyalog) , 17,5 байт

Без бонусу, 20 байт

Goodbye Cruel World!

Спробуйте в Інтернеті!

Зауважте, що код не котирується, тому APL намагається виконати його, але Worldне визначений, викликаючи помилку VALUE ERROR з рядком коду, що міститься в повідомленні про помилку.

З бонусом 35 ÷ 2 = 17,5 байт

'Hello World!'
Goodbye Cruel World!

Спробуйте в Інтернеті!

Спочатку друкується необхідний рядок, а потім виходить з ладу, як у вищевказаній програмі.

Більш складна версія бонусу, 35 ÷ 2 = 17,5 байт

'Goodbye Cruel',5↓⎕←'Hello World!'

Спробуйте в Інтернеті!

Друкує перший рядок, потім видаляє перші п'ять символів з цього ( 5↓), потім з'єднує цей ( ,) з новим префіксом, а потім намагається виконати ( ), що спричинить ту саму помилку, що і вище.


1
@Cyoce Typo. Спасибі
Адам

5

Баш 20,5! 18.5!

Я не збираюся бити желе, але я трохи збиваюся з мого удару, коли швидко розбиваю сценарій. 18.5 - це не дуже погано для мови, що не займається гольфом. (Зверніть увагу, що це повинен бути сценарій, інтерактивний bash намагатиметься інтерпретувати !як пошук історії)

echo Hello World!
Goodbye\ Cruel\ $_

Повертається з кодом помилки 127 та:

Hello World!
bash.sh: line 2: Goodbye Cruel World!: command not found

За запитом немає "ніде :). Як запропонував apricot boyя, зараз шукаю останній аргумент попередньої команди, щоб зберегти 4 байти.


Я намагався побити тебе… і не вдалося з 21! байт :) W=\ World\!;echo Hello$W;"Goodbye Cruel$W"
reitermarkus

1
Можливо, ви можете змінити другий рядок на Goodbye\ Cruel\ !$не 100%, але досить впевнений, що !$це "останнє слово останньої команди"
абрикосовий хлопчик

Але що робити, якщо виконуваний файл під назвою "Goodbye Cruel World!" існує в ПАТ? :)
spuck

Перевірено ОК на TIO.run ... б'є мою відповідь zsh: /
roblogic

4

TeX, 19!

Hello World!#\bye Goodbye Cruel World!

Щоб змусити TeX фактично створювати файл дви / pdf без ручного втручання, компілюйте з -interaction=nonstopmode.

Він друкує Hello World!, видає помилку для використання, #коли цього не потрібно, а потім зупиняє компіляцію \bye. Однак все, що є після \bye, все ще виводиться у повідомленні про помилку, тому воно застосовується до бонусу.


4

WinDBG (налагодження локального ядра Windows XP / Vista), 33 байти

.echo Goodbye Cruel World!;.crash

Попередження: Це призведе до збою всієї машини, а не лише програми.

Локальна налагодження ядра дозволена лише в Windows XP та Vista (але за умовчанням не доступна в Vista). Діалогове вікно WinDBG про локальну налагодження ядра не згадує жодної іншої ОС Windows, тому я припускаю, що навіть для них не можна ввімкнути. Імовірно, для інших ОС Windows ви можете підключити до віддаленої машини для налагодження ядра, але це віддалена машина, яка вийде з ладу, тому я не думаю, що це рішення нараховується там.


Локальна налагодження ядра також підтримується в Windows 7, і я не чув, що її видалено з тих пір (але, можливо, я її пропустив).
Коді Грей,

4

JS (ES5), 46/2 = 23 байти!

alert("Hello, World!")["Goodbye Cruel World!"]

Сповіщення Hello, World!, потім помилки зUncaught TypeError: Cannot read property 'Goodbye Cruel World!' of undefined


4

PowerShell, 26 байт

'Goodbye Cruel World!';1/0

Я думаю, що ділення на 0 - це найпростіший спосіб викинути помилку.

PowerShell, 35/2 = 17,5 байт

"Hello World!";Goodbye Cruel World!

від TessellatingHeckler , видаляє помилку так:

PS C:\Users\Connor> "Hello World!";Goodbye Cruel World!
Hello World!
Goodbye : The term 'Goodbye' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:16
+ "Hello World!";Goodbye Cruel World!

Чи не повинно бути $w='World!'!)?
gmatht

"Hello World!";Goodbye Cruel World!становить 17,5 байт, викидає виняток, оскільки Goodbye не розпізнається як команда, а повідомлення про виключення містить рядок у повному обсязі, щоб воно відповідало регулярному вираженню ..
TessellatingHeckler

1
Використовуючи ту ж логіку, що й відповідь 17.5b, 'Goodbye Cruel World!';xврятували б два байти за 24
Веска



4

Node.js, Оцінка: 25,5 24,5!

Збережено 1 бал завдяки ETHproductions

Синтаксично правильна повна програма, яка виходить з ладу під час виконання, оскільки console.log()не повертає функцію.

console.log('Hello World!')`Goodbye Cruel World!`

Спробуйте в Інтернеті!


На жаль, не існує жодного фактора для 25.5...: ((
Містер Xcoder

@ Mr.Xcoder Це Gamma(26.5), як і визначення Mathematica.
користувач202729

1
@ user202729 хто сказав, що Mathematica не зламана? :)))
Містер Xcoder

Чи можете ви видалити X(а може, навіть і новий рядок)?
ETHproductions

@ETHproductions Так. Дякую!
Арнольд

3

Ацето , оцінка: 21,5!

yeru
b Ce+
do l"d
GoWorl
"!dl
p"or
HeW
"llo

Друкує Hello World!, потім виходить з ладу

Traceback (most recent call last):
  File "/Users/l3viathan/bin/aceto", line 230, in _plus
    self.push(y+x)
TypeError: unsupported operand type(s) for +: 'int' and 'str'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/l3viathan/bin/aceto", line 811, in <module>
    A.run()
  File "/Users/l3viathan/bin/aceto", line 104, in run
    raise e
  File "/Users/l3viathan/bin/aceto", line 98, in run
    self.step()
  File "/Users/l3viathan/bin/aceto", line 152, in step
    method(self, cmd)
  File "/Users/l3viathan/bin/aceto", line 233, in _plus
    raise CodeException(f"Can't add {x!r} to {y!r}")
__main__.CodeException: Can't add 'Goodbye Cruel World' to 0


3

АХК, 50/2 = 25! (неконкуруючий)

Неконкурент, оскільки додана вимога зробила відповідь недійсною. Я не можу знайти спосіб змусити його складати, виводити текст і збої. Що б я не намагався, хоча б одна з цих вимог не відповідає.


Send,Hello World!
OutputDebug,Goodbye Cruel World!

Це найбільш нудне рішення, про яке я міг придумати. Насправді це не відбувається збій, але технічно це не є вимогою. Все, що потрібно зробити - це вивести повідомлення у вікно налагодження. Це робиться тому, що я говорю це зробити.


Наразі це недійсне. ОП заявляє, що програма повинна вийти з ладу, якщо мова здатна, якщо така, яка AHK.
internet_user

@pycoder Ах, це було додано через 40 хвилин після публікації. Я оновлю нове правило, але воно обійдеться в байтах.
Інженер Тост

3

Japt , 22 байти

°Oo`!dlžW ¤¨C eybºoG`w
°Oo`!dl&#158;W ¤¨C eybºoG`w
 Oo                            output
   `!dl&#158;W ¤¨C eybºoG`     the compressed string "!dlroW leurC eybdooG"
                          w    reversed.
°                              ° transpiles to ++, causing an error; a string can't be incremented

Спробуйте в Інтернеті!

Збережено 3 байти завдяки продуктам obarakon та ETH


Ви можете стиснути рядок, використовуючи, Oc"<string>"а потім замінити поточну рядок стислою версією та оточеною задньою клавішею.
Лука

Пояснення було б добре.
iFreilicht

1
@iFreilicht додано пояснення.
Том

3

C #, 116/2 = 58 байт!

using System;class P{static void Main(){Console.Write("Hello World!");throw new Exception("Goodbye Cruel World!");}}

Звичайна версія для 94 87 байт:

class P{static void Main(){System.Console.Write("Goodbye Cruel World!");int n=0;n/=n;}}

Збережено 7 байт завдяки @KevinCruijssen.


int n=0;n/=n;коротша для вашої першої відповіді.
Кевін Круїйсен

@KevinCruijssen Приємне місце, у мене виникли проблеми з його складанням без поділу постійною нульовою помилкою.
TheLethalCoder

Так, у Java ви просто можете це зробити int n=1/0;, але очевидно, що це неможливо в C # (що насправді є хорошою мовою, але поганою для кодового гольфу). До речі, чому бонус не вгорі? Той коротший.
Kevin Cruijssen

@KevinCruijssen Я не був впевнений, чи кваліфікується він, оскільки це було трохи незрозуміло, коли я опублікував свою відповідь, побачивши, як було уточнено, я переключив їх.
TheLethalCoder

3

Желе , 10,5! байт

“,ḷṅḳȦ»¹“¿µƝɓṭỵae»+/R

Спробуйте в Інтернеті!

Це використовує невизначене поведінку, використовуючи рядки (рядки) Python замість струн Jelly (список 1-char рядків). Перетворення здійснюється за рахунок зменшення рядка Jelly шляхом додавання, а Python +об'єднує два рядки, тому дві додані разом рядки є об'єднаними Python-mud. Тоді він використовує відповідну монаду (діапазон), щоб Python's intвикликався на рядку, що призводить до помилки, яка завжди міститиме Goodbye Cruel World!.

Пояснення:

“,ḷṅḳȦ»¹“¿µƝɓṭỵae»+/R Main Link, niladic.
“,ḷṅḳȦ»¹              Print "Hello World!"
        “¿µƝɓṭỵae»+/  Convert "Goodbye Cruel World!" to a Python string
                    R Make a range out of it

3

Рубі, 43 42 байт / 2 = 21!

puts"Hello World!"
-"Goodbye cruel World!"

Зберегли півбайта за допомогою Алексіса Андерсена, замінивши "String"/0на -"String". Це лише "працює" з версіями Ruby нижче 2.3, в яких метод unary minus був фактично доданий до класу String!

З Ruby <2.3:

$ ruby -e 'puts"Hello World!";-"Goodbye cruel World!"'
Hello World!
-e:1:in `<main>': undefined method `-@' for "Goodbye cruel World!":String (NoMethodError)

З Ruby> = 2.3:

$ ruby -e 'puts"Hello World!";"Goodbye cruel World!"/0'
hello world!
-e:1:in `<main>': undefined method `/' for "Goodbye cruel World!":String (NoMethodError)

ви можете зберегти (наполовину) байт, скориставшись -рядком замість /ie-"Goodbye crueld World!"
Alexis Andersen

@AlexisAndersen дякую! Сьогодні я також дізнався про новий метод у класі String (див. Оновлений пост)
daniero

3

x86-64 Бінарний код (із системними дзвінками Linux), 43 байти

Розбирання:

0:  31 c0                   xor    eax,eax
2:  ff c0                   inc    eax            ; write syscall number = 1
4:  31 ff                   xor    edi,edi
6:  ff c7                   inc    edi            ; stdout file descriptor = 1
8:  48 8d 35 07 00 00 00    lea    rsi,[rip+0x7]  ; load the string at offset 16 into rsi
f:  31 d2                   xor    edx,edx
11: b2 15                   mov    dl,0x15        ; 21 byte string
13: 0f 05                   syscall
15: f4                      hlt
16: 47 6f 6f 64 62 79 65 20 43 72 75 65 6c 20 57 6f 72 6c 64 21 0a .ascii "Goodbye Cruel World!\n"

Note: 0x16 code bytes + 0x15 string bytes = 0x2B = 43 total bytes

Ця програма поєднує потрібні йому дані (рядок "Goodbye Cruel World!\n") у свій власний код. Він завантажує вказівник на цей рядок, використовуючи ripвідносну адресацію, і викликає writesyscall безпосередньо, ніж через обгортку glibc, тому це повністю не залежить від позиції, і ми можемо легко перевірити його, вставивши код у constрядок і перенісши цей рядок у функцію покажчик. Щоб завершити програму, я закінчую її hltінструкцією, яка з привілеями ring 0 замовчуватиме процесор назавжди (або принаймні до наступного переривання), але з привілеями ring 3 (типовими для програм користувача) ми отримуємо набагато менше драматичний Segmentation Fault.

Тестова програма:

#include <stdio.h>

const char code[43] = "\x31\xC0\xFF\xC0\x31\xFF\xFF\xC7\x48\x8D\x35\x07\x00\x00\x00\x31\xD2\xB2\x15\x0F\x05\xF4Goodbye Cruel World!\n";

int main() {
    printf("Code bytes: %zi\nNow running the code:\n\n", sizeof(code));
    ((void(*)())code)();
    printf("Failed to crash, now exiting!\n");
    return 0;
}

Вихід:

Code bytes: 43
Now running the code:

Goodbye Cruel World!
Segmentation fault

Зауважте, що 43-байтний код - це повна програма, визначена викликом, а не лише функція. Це не залежить від mainфункції тестової програми, щоб правильно функціонувати; він все-таки буде надрукувати рядок і збої, якщо його завантажуватимуть і перескакує безпосередньо завантажувач.


Збережіть кілька байтів, використовуючи push/ popдля завантаження регістрів. Наприклад, перші дві інструкції можуть бути push 1+ pop rax, що на 1 байт коротше. Потім наступні дві інструкції можна замінити на mov edi, eax2 байти коротше. Те саме push/ popтрюк можна застосувати до інструкцій 6 і 7: push 0x15+ pop rdx.
Коді Грей,


3

Pyth , 38/2 = 19 байт! 36/2 = 18 байт!

"Hello World!"v"Goodbye Cruel World!

Перевірте це в Інтернеті!

Пояснення

Він друкує Hello World!, потім спробуйте оцінити Goodbye Cruel World!. Це не вдається зробити, тому що цей рядок не є дійсним кодом.

Результат:

Hello World!
Traceback (most recent call last):
  File "pyth.py", line 760, in <module>
  File "<string>", line 4, in <module>
  File "/app/macros.py", line 1085, in Pliteral_eval
  File "/app/.heroku/python/lib/python3.4/ast.py", line 46, in literal_eval
  File "/app/.heroku/python/lib/python3.4/ast.py", line 35, in parse
  File "<unknown>", line 1
    Goodbye Cruel World!
                ^
SyntaxError: invalid syntax
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.