ক্র্যাশ আইআরবি (ইন্টারেক্টিভ রুবি)


18

রুবি একটি বিল্ট-ইন REPL নিয়ে আসে, যা বেশ সহজ hand

আইআরবির স্ক্রিনশট

আপনার চ্যালেঞ্জটি হ'ল কোডের সর্বনিম্ন পরিমাণে এটি ক্রাশ করা!

"ক্র্যাশ" এর সংজ্ঞাটি "একে অপ্রয়োজনীয় উপায়ে প্রস্থান করান ।" এই উপায়ে exit, quit, abort, irb_exit, irb_quit, এট। অল। বৈধ উত্তর নয়।

তদ্ব্যতীত, আপনি সিস্টেমের অন্য কোনও অংশে কোনও পার্শ্ব প্রতিক্রিয়া তৈরি করতে না পারেন । উদাহরণস্বরূপ, `rm -rf /`কোনওটিই বৈধ নয়।

1.9.3 বা তার বেশি সংস্করণটি বৈধ। যদি আপনার কোডটি কেবল রুবির নির্দিষ্ট সংস্করণে কাজ করে তবে আপনি এটি উত্তরে উল্লেখ করতে পারেন।

চূড়ান্ত সীমাবদ্ধতা হ'ল আপনি কোনও রত্নের উপর নির্ভর করতে পারেন না।

এটি , তাই আইআরবি ক্র্যাশ করে সবচেয়ে সংক্ষিপ্ততম কোডটি জিতবে!


আমি গল্ফস্ক্রিপ্ট আনসার করতে পারি, প্লিজ?
ডিজিটাল ট্রমা

3
কি দারুন. আমি রুবি জানি না, এবং এই উত্তরগুলি পড়ার পরে আমি এটি কখনই শিখব না।
izabera

"'ক্র্যাশ' এর সংজ্ঞাটি 'অযৌক্তিক উপায়ে এটিকে প্রস্থান করে তোলে' '" অনিচ্ছাকৃত কিছু করার উদ্দেশ্যে আমরা কীভাবে কোড লিখব? আপনি যা জিজ্ঞাসা করছেন তা অস্পষ্ট হিসাবে আমি ভোট দিতে চাই।
এমএস 210

উত্তর:


6

5 টি অক্ষর

ENV=0

( @ ডানিরোর উত্তর দ্বারা অনুপ্রাণিত )


আমার পক্ষে কাজ করে না:irb(main):001:0> ENV=0 (irb):1: warning: already initialized constant ENV
ব্রায়ান মিন্টন

@ ব্রায়ানমিন্টনের হাতে কেবল একটি 1.9.3p194 ছিল এবং এটি সেই সংস্করণটির সাথে "কাজ করে"।
হাওয়ার্ড

আহ, আমার সংস্করণটি বেশ পুরানো:irb 0.9.6(09/06/30)
ব্রায়ান মিন্টন

1
@ ব্রায়ানমিন্টন যা আইআরবির সর্বশেষতম সংস্করণ
ডার্কহার্ট

17

16 টি অক্ষর

String=0
String=0

সংক্ষিপ্ততম নয়, তবে আমি মনে করি এটি মজার বিষয় যে এটি দ্বিতীয় পংক্তি পর্যন্ত ক্র্যাশ হয় না। আইআরবি বের হওয়ার আগে প্রায় 20 লাইনের পাঠ্য উত্পন্ন করে। কোনও কারণে এটি সংক্ষিপ্ত করা যায় না উদাহরণস্বরূপ 2.times{String=0}


সম্পাদন করা

এখনও অবধি সমস্ত উত্তরগুলির মধ্যে, এটি কেবলমাত্র আমার জন্য কাজ করেছে (এবং এটি যে সমস্ত সংস্করণে আমি আমার হাত পেতে পারি তাতে কাজ করে), এবং আমি এই সংস্করণগুলিতে তাদের সমস্তটি পরীক্ষা করেছি:

sshআমার বিশ্ববিদ্যালয়ে প্রবেশের সময় আমি যে ধরণের লিনাক্স পাই তা সম্পর্কে :
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux]
ruby 1.8.5 (2006-08-25) [x86_64-linux]
ম্যাক ওএস এক্স মাভারিক্স ডিফল্ট:
ruby 2.0.0p247 (2013-06-27 revision 41674) [universal.x86_64-darwin13]
ওএস এক্স-এ হোমব্রিউয়ের মাধ্যমে ইনস্টল করা হয়েছে:
ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-darwin12.4.0]

সম্পাদনা 2

7 টি অক্ষর

আমার প্রথম সংস্করণ (এবং / অথবা @ হাওয়ার্ডের উত্তর, সর্বাধিক ক্রস রেফারেন্সের জন্য) @ চীনা পার্ল গোথের উত্তরটির সাথে সংমিশ্রণ :

STDIN=0

Array=0অবিলম্বে ক্রাশ।
primo

1
@ প্রিমো দুর্দান্ত, তবে আমি এটি কাজ করতে পারি না: / (আমার সম্পাদনা দেখুন)
ড্যানিয়েরো

এখানে একই, শুধুমাত্র এটি এবং সমাপনী স্টিডিন উত্তর কাজ করে, অন্যরা সবাই কেবল সতর্কতা দেয়।
ব্যবহারকারী 12205

হ্যাঁ, স্টাডিন আমার জন্যও কাজ করে। এটি আমার সম্পাদনার পরে পোস্ট করা হয়েছিল।
ডানিরো

1
আপনি দ্বিতীয় লাইনটি সংক্ষিপ্ত করতে পারেন =এবং এটি এখনও ক্র্যাশ।
ফ্রেসটিল

10

12 চর

রুবি আমার চায়ের কাপটি ঠিক নয়, তবে আমি কেবল খুঁজে পেয়েছি যে স্টিডিনটি বন্ধ করার সময় আইআরবি মজাদার আচরণ করে :)

$stdin.close

0.9.6 (09/06/30) এবং রুবি 1.9.3p194 এ পরীক্ষিত


5
STDIN.closeখুব কাজ করে, এবং এটি 1 কম চর!
কাভু

+1 কারণ এটি এতটা স্পষ্ট যে আপনি যখন এটি দেখেন তখন এটি সমস্যার কারণ হবে :) আমার উত্তর সম্ভবত একটি বাগের চেয়ে বেশি, তবে এইটির জন্য আপনি সত্যিই আইআরবি থেকে চালাক কিছু করার আশা করতে পারবেন না; এটি স্টার ট্রেকের মতো বা যখন তারা সুপার বুদ্ধিমান রোবটকে একটি অসম্ভব প্রশ্ন জিজ্ঞাসা করে এবং এটি বিস্ফোরিত হয়।
ডানিরো

সম্পর্কিত: $>.close
জর্দান

7

10 9 টি চর

@ ড্যানিরোর উত্তরের একটি সংক্ষিপ্ত রূপ:

String=1
-

এটি কমপক্ষে ডিফল্ট ওএস এক্স মাভারিক্স রুবিতে (2.0.0) কাজ করে।

উত্তরটি মূলত নির্ভর করে যে রুবি Tokenফাংশনটি caseইনপুট টোকনে একটি করে। একটি মামলার বিরুদ্ধে যাচাই করে String, যা প্রথম লাইনে নতুন করে সংজ্ঞায়িত করা হয়েছে। এই কেস ব্যর্থ হয়, সুতরাং কেসটি ডিফল্ট হয়ে যায়, যা ধরে নেয় যে বস্তুর কোনও ancestorsঅ্যাক্সেসর রয়েছে (যা এটি না)।

"বাগ" টোকেনাইজারে রয়েছে বলে, প্রথম লাইনটি ব্যর্থ হবে না কারণ কেবলমাত্র বিশ্লেষণ শেষ হওয়ার পরে লাইনটি কার্যকর হয়। সুতরাং, এটি কেবল পরবর্তী লাইনগুলিকেই প্রভাবিত করে। পরবর্তী লাইনগুলিতে ব্যর্থতাটি দেখতে কোনওরকম অপারেটর থাকতে হবে।


ব্যাখ্যার জন্য +1। তবে এই দানিরো কে? ;)
ডানিরো

@ ডানিরো: আমার ক্ষমা, আজকে আমি লাইসডিক্সের বলে মনে হচ্ছে।
nneonneo

6

5 টি অক্ষর

$>=$<

Stdout st stout এ সেট করে যা লেখার জন্য stdin খোলার চেষ্টা করে ত্রুটি ছুড়ে দেয় এবং আইআরবি ক্র্যাশ করে।


নোট যে এই রুবি 2.3.0p0 উপর পরীক্ষা করা হয়
photoionized

5

22 টি অক্ষর

def method_missing;end

স্পষ্টতই এটি কিছু আইআরবি ইন্টারনালগুলির সাথে মেসেজ করে। (এটি ঠিক করতে, self.পরে যুক্ত করুন def))


4

12 টি অক্ষর

def send;end

আমি যতদূর জানি, অবজেক্ট শ্রেণিতে চারটি পদ্ধতি রয়েছে যা এই ধরণের আচরণ দেখায়:

send
method_missing
respond_to?
respond_to_missing?

4
আমার আইআরবিতে এটি কেবল ফিরে আসে nilএবং বহন করে
ডানিরো

@ ডানিরো 1.8.6 এবং 1.9.3 উভয় ক্রাশ।
primo

@ প্রিমো আর 2.0.0
drusepth

4

5 অক্ষর

IRB=0

আইআরবিকে নতুন করে সংজ্ঞায়িত করার মতো কোনও কিছুই আইআরবিটিকে ব্যাঘাত ঘটাচ্ছে না।


হ্যাঁ! এটি ক্রাশ হয় না, তবে কিছু পরে 20 লাইন ত্রুটি মুদ্রণ করে!
মেগা ম্যান

সম্ভবত এখনই আইআরবির একটি ভিন্ন সংস্করণ, @ মেগামন এতক্ষণে, অবশ্যই ওয়াইএমএমভি।
vgoff

উভয়ই দুর্দান্ত, যাই হোক!
মেগা ম্যান



0

26 + 1 = 27 টি অক্ষর

এটি খুব গোলাপী নয়, তবে দুর্ঘটনাক্রমে এটি আবিষ্কার করতে পেরে আমি আনন্দিত হয়েছিলাম এবং ভেবেছিলাম অন্যরা এটি উপভোগ করতে পারে।

class Fixnum;def +;end end

আমি স্কোরটিতে +1 যুক্ত করেছি কারণ উপরের প্রবেশের পরে আপনাকে দ্বিতীয় বার এন্টার টিপতে হবে (তবে +2 নয় কারণ অন্য কেউ এন্টারটি গণেনি)।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.