अलविदा क्रूर दुनिया!


49

पृष्ठभूमि

हैलो गोल्फर्स! मैं सभी प्रोग्रामिंग भाषाओं को सीखना चाहूंगा! लेकिन मैं थोड़े ध्यान देने की अवधि रखता हूं ... और हैलो वर्ल्ड के सभी उदाहरणों की नकल करना उबाऊ हो जाता है ... लेकिन मुझे आग पसंद है! ^ डब्ल्यू ^

चुनौती

तो यहाँ की योजना है! मैं चाहता हूं कि आप सभी छोटे-छोटे कोड लिखें, जो संकलन, प्रिंट 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) का उपयोग करें।

मैं पायथन 3 को क्रैश कर सकता हूं, इसलिए मैंने एक उदाहरण पायथन 3 उत्तर को शामिल किया है ! अब सभी दुनिया को आग लगा देता है! ^ डब्ल्यू ^


टिप्पणियाँ विस्तारित चर्चा के लिए नहीं हैं; इस वार्तालाप को बातचीत में स्थानांतरित कर दिया गया है ।
डेनिस

as a bonus twist challenge, print "Hello World!" and crash with "Goodbye Cruel World!"?
मैजिक ऑक्टोपस Urn

मान लीजिए मैं जावा जैसी भाषा में काम कर रहा हूँ, जहाँ STDOUT और STDERR निश्चित रूप से, विभिन्न थ्रेड्स में मुद्रित हैं। इसका मतलब यह है कि, हालांकि, प्रोग्राम, क्रम में, "हैलो वर्ल्ड" प्रिंट करता है और फिर क्रैश हो जाता है, यह संभव है कि स्टैक ट्रेस पहले मुद्रित हो जाएगा ... क्या इसकी अनुमति है?
फीनिक्स

@SLCPhoenix जब तक STDOUT अभी भी प्रिंट करता है, और STDERR अभी भी प्रिंट करता है, तब तक कोई फर्क नहीं पड़ता। जब तक न तो दूसरे को होने से रोक सकते हैं।
तेजा

1
यह बहुत मजेदार है, मैं समाधान बनाना बंद नहीं कर सकता!
आदम

जवाबों:


36

जेली , 12 बाइट्स

“¿µƝɓṭỵae»Ȯ:

इसे ऑनलाइन आज़माएं!

स्पष्टीकरण:

“¿µƝɓṭỵae»Ȯ:

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

जैसा कि पूर्णांक विभाजन एक रंग है, यह दोनों तर्कों के रूप में श्रृंखला के वर्तमान मूल्य को स्पष्ट रूप से ले जाएगा - जो एक स्ट्रिंग है। क्रैश क्योंकि यह पूर्णांकों की अपेक्षा करता है।


7
PPCG में आपका स्वागत है!
डेनिस

धन्यवाद! मैं अब कुछ समय के लिए दुबका हुआ हूं लेकिन यह पहली बार है जब मुझे एक चुनौती मिली कि मुझे ऐसा लगा कि मैं वास्तव में शालीनता से हल कर सकता हूं!
तितर बितर

28
प्रभावशाली उत्तर, हालांकि लगभग सभी जेली उत्तर प्रभावशाली हैं, दोनों लंबाई और इस तथ्य के कारण कि आप जेली सीखने में कामयाब रहे।
ग्रीफॉन -

4
A base-250 encoded stringयह दोनों एक डरावना है जो आप कर सकते हैं। X3
Tezra

3
यह स्ट्रिंग "अलविदा क्रूर दुनिया" से काफी छोटा है। (20 बाइट्स)। पागल ...
एडम प्लोचर

35

सी, 43 बाइट्स

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

स्ट्रिंग को प्रिंट करता है और फिर रिटर्न स्ट्रिंग को पॉइंटर के रूप में दूसरे स्ट्रिंग पर प्रिंट करने के लिए उपयोग करने की कोशिश करता है, जो एक विभाजन दोष का कारण बनता है।

इसे ऑनलाइन आज़माएं!

सी, 42 बाइट्स

@Ruslan को धन्यवाद!

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

इसे ऑनलाइन आज़माएं!

बस मज़े के लिए: सी (64-बिट लिनक्स पर), 149 बाइट्स

इस हैलो वर्ल्ड -प्रोग्राम से संशोधित यहाँ

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
आप की जरूरत नहीं है iputs("")/0;एक वाक्यात्मक रूप से सही कथन है।
रीसी

1
@rici हाँ यह है, लेकिन यह दुर्घटना नहीं करता है (कम से कम TIO पर)।
स्टैडबॉक्स

1
@Steadybox: यह आपके लिए अनुकूलन है।
रिसी

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)

(एबी) इस तथ्य का उपयोग करता है कि एसओजीएल एसटीडीआरआर का उपयोग डिबग आउटपुट के रूप में करता है, इसलिए इसमें लाइन के साथ-साथ बहुत सारे पाठ हैं

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

यदि आपने किसी फ़ाइल के प्रसंस्करण स्केच के STDOUT को "गुडबाय क्रुएल वर्ल्ड!" वहाँ होगा।


चूंकि चुनौती का उल्लेख है " तार Hello World!और Goodbye Cruel World!मामले असंवेदनशील हैं, लेकिन अन्यथा बिल्कुल ऊपर के रूप में दिखाई देना चाहिए। ", आप अपने कोड को पूरी तरह से और बस सभी लोअरकेस में आउटपुट से छुटकारा पाकर अपने कोड को गोल्फ कर सकते हैं ।
केविन क्रूज़सेन

@KevinCruijssen ओह हुह, धन्यवाद!
dzima

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

1 बाइट कम के लिए गैलदेयुय को श्रेय


2
यह 'अलविदा क्रुएल वर्ल्ड!' और फिर दुर्घटनाओं जो मैं अभी सोचा था कि यह बस स्वीकार किए जाते हैं दुर्घटना होगी।
एनलिलेटर

@Trebuchette आवश्यकता "आपके प्रोग्राम को गुडबाय क्रुएल वर्ल्ड को प्रिंट करना होगा! आउटपुट और फिर क्रैश" के लिए, ओपी ने निर्दिष्ट नहीं किया कि "आउटपुट" का अर्थ है, stderr, stdout, एक संदेश बॉक्स, या उपरोक्त में से कोई भी।
छत्र

@ चित्र ओह, मैं देख रहा हूँ। STDERR केवल तभी मायने रखता है जब आप बोनस के लिए जा रहे हों। धन्यवाद!
ट्रेबुचेट

@Trebuchette नहींं। यह कहता है "या, बोनस ट्विस्ट चैलेंज के रूप में, हैलो वर्ल्ड प्रिंट करें! और अलविदा क्रूएल वर्ल्ड के साथ क्रैश!"। 'क्रैश' शब्द का स्पष्ट अर्थ नहीं है, 'क्रैश' का अर्थ (अन्य चीजों के अलावा) एक अपवाद भी हो सकता है। जब तक ओपी इसे परिभाषित नहीं करता है तब तक यह व्याख्या के लिए खुला है। इसके अलावा लूआ के कुछ अनुप्रयोगों में स्टैडर की कोई अवधारणा नहीं है (उदाहरण के लिए खेल के लिए एक स्क्रिप्टिंग भाषा के रूप में एम्बेडेड लुआ) और इसके बजाय एक संदेश बॉक्स या एक लॉग फ़ाइल आदि के लिए प्रिंट होगा
चरण

1
आप इसके बजाय एक बाइट को बचा सकते हैं:a=-print"Goodbye Cruel World!"
गैलड्यूग्यू

8

अजगर 3 | स्कोर: 24.5! २३ २२!

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

"अलविदा दुनिया" का उपयोग करने से "ऑपरेटर" की तुलना में "हैलो वर्ल्ड" प्रिंट करें। NoType वापसी तत्व के लिए। (पिछले संस्करण से \ n \ r कट आउट)

इसे ऑनलाइन आज़माएं!

अजगर 3 | स्कोर: 34 30

+print("Goodbye Cruel World!")

गुडबाय प्रिंट करें, प्रिंट परिणाम पर अमान्य यूनरी + ऑपरेशन करें (कोई नहीं)

इसे ऑनलाइन आज़माएं!


+"Goodbye Cruel World!"3 बाइट्स से छोटा है और एक TypeError आउटपुट करता है।
गैबोर फेकेट

print("Goodbye Cruel World!")/0दूसरे के लिए छोटा है (3 बाइट्स?)
मैट

@ मैट्सजॉय मुझे डर था कि प्रिंट से पहले दुर्घटना हो जाएगी। लेकिन जब से यह पहली बार प्रिंट करता है, मैं सिर्फ 'परिणाम' पर
एकतरफा काम करूंगा

24
2.585e + 22 एक बहुत बड़ा स्कोर है ... आपको यकीन है कि आप इसे और नीचे नहीं गिरा सकते हैं?
1642 को tuskiomi

1
@tuskiomi '!' इसका मतलब है कि अंतिम स्कोर को बोनस चुनौती द्वारा संशोधित किया गया है।
तीज्रा

7

आर, २२ २०! बाइट्स (44/2) (40/2)

cat("Hello World!")
`Goodbye Cruel World!`

इसे ऑनलाइन आज़माएं!

आउटपुट:

नमस्ते दुनिया!

त्रुटि: ऑब्जेक्ट 'अलविदा क्रूएल वर्ल्ड!' नहीं मिला

DigEmAll के लिए धन्यवाद दो अंक बचाता है




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

सी प्रीप्रोसेसर, 27 बाइट्स

#error Goodbye Cruel World!

आउटपुट:

fatal error C1189: #error:  Goodbye Cruel World!

1
आप इसे आगे छोटा करने में सक्षम हो सकते हैं#Goodbye Cruel World!
खूबानी लड़का

@apricotboy जो अभी भी एक त्रुटि पैदा करेगा लेकिन पूर्ण त्रुटि संदेश "अलविदा क्रूर दुनिया" संकलक द्वारा आउटपुट नहीं है (कम से कम MSVC पर)
गोविंद परमार

@ गोविंद परमार आह। वैसे यह निश्चित रूप से gcc पर करता है: i.imgur.com/qmGnoJv.png
खुबानी लड़का

6

APL (Dyalog) , 17.5 बाइट्स

बोनस के बिना, 20 बाइट्स

Goodbye Cruel World!

इसे ऑनलाइन आज़माएं!

ध्यान दें कि कोड अयोग्य है, इसलिए एपीएल इसे निष्पादित करने की कोशिश करता है लेकिन World परिभाषित नहीं किया जाता है, जिससे त्रुटि संदेश में शामिल कोड की आक्रामक रेखा के साथ VALUE ERROR क्रैश हो जाता है।

बोनस के साथ, 35 = 2 = 17.5 बाइट्स

'Hello World!'
Goodbye Cruel World!

इसे ऑनलाइन आज़माएं!

पहले आवश्यक स्ट्रिंग प्रिंट करता है, फिर उपरोक्त प्रोग्राम की तरह क्रैश होता है।

अधिक परिष्कृत बोनस संस्करण, 35 = 2 = 17.5 बाइट्स

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

इसे ऑनलाइन आज़माएं!

पहले स्ट्रिंग को प्रिंट करता है, फिर उसमें से पहले पांच अक्षरों 5↓( ,) को छोड़ता है, फिर उस ( ) को एक नए उपसर्ग में समेटता है, और फिर निष्पादित करने का प्रयास करता है ( ), जिससे उपरोक्त त्रुटि होती है।


1
@Cyoce टाइपो। धन्यवाद
एडम

5

बैश 20.5! 18.5!

मैं जैली को कोसने नहीं जा रहा हूं, लेकिन मैं अपनी बैश को थोड़ा तेज कर रहा हूं और एक त्वरित बैश स्क्रिप्ट को कोस रहा हूं। 18.5 गैर-गोल्फ भाषा के लिए बहुत बुरा नहीं है। (ध्यान दें कि यह एक स्क्रिप्ट होना चाहिए, इंटरएक्टिव बैश !एक इतिहास खोज के रूप में व्याख्या करने की कोशिश करेगा )

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"
२०:१० पर रीटेनमेकस

1
आप शायद दूसरी पंक्ति को बदल सकते हैं Goodbye\ Cruel\ !$, 100% नहीं, लेकिन बहुत यकीन है कि !$"अंतिम आदेश का अंतिम शब्द" है
खूबानी लड़का

लेकिन क्या होगा अगर एक निष्पादन योग्य नाम "अलविदा क्रूएल वर्ल्ड!" पथ में मौजूद है? :)
spuck

TIO.run पर सत्यापित ओके ... मेरे zsh जवाब को धड़कता है: /
डकैती

4

TeX, 19!

Hello World!#\bye Goodbye Cruel World!

TeX को वास्तव में मैन्युअल हस्तक्षेप के बिना एक dvi / pdf फ़ाइल का उत्पादन करने के लिए मजबूर करना -interaction=nonstopmode

यह प्रिंट करता है Hello World!, #आप का उपयोग करने के लिए एक त्रुटि फेंकता है जब आप करने के लिए नहीं माना जाता है और फिर के साथ संकलन बंद कर देता है \bye। हालांकि, \byeत्रुटि संदेश में जो कुछ भी है, वह अभी भी आउटपुट है, इसलिए यह बोनस के लिए लागू होता है।


4

WinDBG (Windows XP / Vista स्थानीय कर्नेल डिबगिंग), 33 बाइट्स

.echo Goodbye Cruel World!;.crash

चेतावनी: यह केवल कार्यक्रम ही नहीं, बल्कि पूरी मशीन को क्रैश कर देगा।

स्थानीय कर्नेल डीबगिंग केवल Windows XP और Vista पर अनुमत है (लेकिन विस्टा में डिफ़ॉल्ट रूप से सक्षम नहीं है)। स्थानीय कर्नेल डिबगिंग पर WinDBG संवाद किसी अन्य विंडोज ओएस का उल्लेख नहीं करता है, इसलिए मुझे लगता है कि यह उन लोगों के लिए भी सक्षम नहीं किया जा सकता है। संभवतः अन्य विंडोज ओएस के लिए आप कर्नेल डिबगिंग के लिए एक रिमोट मशीन से जुड़ सकते हैं, लेकिन यह रिमोट मशीन है जो दुर्घटनाग्रस्त हो जाएगी इसलिए मुझे नहीं लगता कि यह समाधान वहां मायने रखता है।


विंडोज 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

पॉवरशेल, 26 बाइट्स

'Goodbye Cruel World!';1/0

मुझे लगता है कि 0 से विभाजित करना एक त्रुटि फेंकने का सबसे आसान तरीका है।

पॉवरशेल, 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!'( क !) के साथ नहीं होना चाहिए ?
गमथ

"Hello World!";Goodbye Cruel World!17.5 बाइट्स है, एक अपवाद को फेंक देता है क्योंकि अलविदा एक आदेश के रूप में मान्यता प्राप्त नहीं है, और अपवाद संदेश में पूरी तरह से लाइन शामिल है इसलिए यह रेगेक्स से मेल खाता है ..
TessellatingHeckler

1
17.5b उत्तर के रूप में एक ही तर्क का उपयोग करते हुए, 'Goodbye Cruel World!';x24 के लिए दो बाइट्स
बचाएगी



4

Node.js, स्कोर: 25.5 24.5!

ETHproductions के लिए धन्यवाद 1 अंक बचा

एक वाक्यात्मक रूप से सही पूर्ण कार्यक्रम जो रनटाइम में क्रैश हो जाता है क्योंकि console.log()एक फ़ंक्शन वापस नहीं कर रहा है।

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

इसे ऑनलाइन आज़माएं!


अफसोस की बात है, इसके लिए कोई तथ्य नहीं है 25.5...: (
मिस्टर एक्सकोडर

@ Mr.Xcoder यह Gamma(26.5)गणितज्ञ परिभाषा के साथ के रूप में है।
user202729

1
@ user202729 जिन्होंने कहा कि गणितज्ञ टूटा नहीं है? :)))
श्री एक्सकोडर

क्या आप X(और शायद नई भी) को हटा सकते हैं ?
16

@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

पायथ, 28 24 बाइट्स

"GOODBYE CRUEL WORLD!"hY

एक स्ट्रिंग प्रिंट करता है, फिर खाली सूची का पहला तत्व प्राप्त करने की कोशिश करता है।

इसे इस्तेमाल करे!


3

AHK, 50/2 = 25! (गैर प्रतिस्पर्धा)

गैर-प्रतिस्पर्धात्मक क्योंकि एक अतिरिक्त आवश्यकता ने उत्तर को अमान्य बना दिया। मुझे इसे संकलित करने, पाठ को आउटपुट करने और क्रैश करने का कोई तरीका नहीं मिल रहा है। मैं जो भी कोशिश करता हूं, उन आवश्यकताओं में से कम से कम एक विफल हो जाती है।


Send,Hello World!
OutputDebug,Goodbye Cruel World!

यह सबसे उबाऊ समाधान है जिसके बारे में मैं सोच सकता था। यह वास्तव में दुर्घटना नहीं करता है लेकिन यह तकनीकी रूप से एक आवश्यकता नहीं है। यह सब करना है डिबग विंडो के लिए एक संदेश आउटपुट है। यह वह करता है क्योंकि मैं ऐसा करने के लिए कहता हूं।


यह वर्तमान में अमान्य है। ओपी बताता है कि यदि भाषा सक्षम है तो कार्यक्रम को क्रैश होना चाहिए, जो कि एएचके है।
internet_user

@ साइकोडर आह, जो मैंने पोस्ट करने के 40 मिनट बाद जोड़ा था। मैं नए नियम के लिए अपडेट करूंगा लेकिन यह बाइट्स खर्च करेगा।
इंजीनियर टोस्ट

3

जाप , 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 और ETHproductions के लिए धन्यवाद बचा


आप स्ट्रिंग का उपयोग करके संपीड़ित कर सकते हैं Oc"<string>"और फिर वर्तमान स्ट्रिंग को संपीड़ित संस्करण के साथ बदल सकते हैं और बैकटिक्स से घिरा हुआ है।
ल्यूक

एक स्पष्टीकरण अच्छा होगा।
इरिलिचट

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;आपके पहले उत्तर के लिए छोटा है।
केविन क्रूज़सेन

@ केविनक्रूजसेन नाइस स्पॉट, मुझे लगातार शून्य त्रुटि द्वारा विभाजन के बिना संकलन करने में परेशानी हो रही थी।
द लीथलकोडर

हाँ, जावा में आप बस कर सकते हैं int n=1/0;, लेकिन जाहिरा तौर पर यह सी # में संभव नहीं है (जो वास्तव में भाषा के लिए एक अच्छी बात है, लेकिन कोडगोल्फिंग के लिए बुरा है)। Btw, शीर्ष पर बोनस क्यों नहीं है? वह एक छोटा है।
केविन क्रूज़सेन

@KevinCruijssen मुझे यकीन नहीं था कि यह योग्य है क्योंकि यह थोड़ा अस्पष्ट था जब मैंने अपना उत्तर पोस्ट किया, यह देखते हुए कि यह आगे स्पष्ट किया गया है कि मैंने उन्हें चारों ओर स्विच किया है।
TheLethalCoder

3

जेली , 10.5! बाइट्स

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

इसे ऑनलाइन आज़माएं!

यह जेली स्ट्रिंग्स (1-चार स्ट्रिंग्स की सूची) के बजाय पायथन स्ट्रिंग्स (स्ट्रिंग्स) का उपयोग करते हुए अपरिभाषित व्यवहार का शोषण करता है। रूपांतरण जेली स्ट्रिंग को कम करके और पायथन के द्वारा किया जाता है+ दो तारों को मिलाया जाता है, इसलिए एक साथ जोड़े गए दो तार पायथन-वार होते हैं। फिर, यह उपयुक्त मोनाड (रेंज) का उपयोग करता है ताकि पायथन 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

रूबी, ४३ ४२ बाइट्स / २ = २१!

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

एलेक्सिस एंडरसन की मदद से आधा बाइट बचाया, "String"/0साथ में जगह देकर -"String"। रूबी संस्करणों के साथ यह केवल "काम करता है" 2.3 से कम है, जिसमें यूनरी माइनस है विधि वास्तव में स्ट्रिंग वर्ग में जोड़ा गया था!

रूबी के साथ <2.3:

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

रूबी के साथ = = 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)

आप का उपयोग करके एक बाइट बचा सकता है (आधा) -के बजाय स्ट्रिंग पर /यानी-"Goodbye crueld World!"
एलेक्सिस एंडरसन

@AlexisAndersen धन्यवाद! आज मैंने स्ट्रिंग क्लास में एक नई विधि के बारे में भी सीखा (अपडेट की गई पोस्ट देखें)
daniero

3

x86-64 बाइनरी कोड (लिनक्स सिस्टम कॉल के साथ), 43 बाइट्स

disassembly:

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सापेक्ष पते का उपयोग करके उस स्ट्रिंग को एक पॉइंटर लोड करता है , और writeएक glibc आवरण के माध्यम से सीधे syscall को कॉल करता है , इसलिए यह पूरी तरह से स्थिति-स्वतंत्र है, और हम आसानी से कोड को एक constस्ट्रिंग में एम्बेड करके और उस स्ट्रिंग को एक फ़ंक्शन में कास्टिंग करके आसानी से परीक्षण कर सकते हैं। सूचक। प्रोग्राम को क्रैश करने के लिए, मैं इसे एक hltनिर्देश के साथ समाप्त करता हूं , जिसमें रिंग 0 विशेषाधिकार हमेशा के लिए प्रोसेसर को चुप कर देगा (या कम से कम जब तक अगली बाधा नहीं आती है), लेकिन रिंग 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, eax, जो 2 बाइट्स छोटा है। उसी push/ popचाल को निर्देश 6 और 7: push 0x15+ पर लागू किया जा सकता है pop rdx
कॉडी ग्रे


3

पायथ , 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 Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.