পার্ল 5.10, 392 384 372 235 369 (এএসসিআইআই) / 234 (ইউনিকোড)
এর সংক্ষিপ্ততম ASCII সংস্করণটি 369 অক্ষর দীর্ঘ:
@_=(fly,spider,bird,cat,dog);$_="There was an old lady who!ed a";for$P("",",
That wrJand Jand jJinside her",",
How absurd&",",
Imagine that&",",
What a hog&"){$p=$c;$c=$".shift@_;$t=$p?"She!ed the$c to catch the$p,
$t":"I don't know why she!ed that$c,
Perhaps she'll die.
$_";$_.="$c$P.
$t";s/&/ to! a$c/}s/!/ swallow/g;s/J/iggled /g;say"$_ horse,
She died of course."
এটি এই বেস প্রোগ্রাম থেকে শুরু হয়েছিল:
my @animals = qw(fly spider bird cat dog);
my $buf = "There was an old lady who swallowed a ";
for my $phrase ( "",
",\nThat wriggled and iggled and jiggled inside her",
",\nHow absurd&",
",\nImagine that&",
",\nWhat a hog&" ) {
$previous = $current;
$current = shift @animals;
$trail = $previous ? "She swallowed the $current to catch the $previous,\n$trail"
: "I don't know why she swallowed that $current,\n"
. "Perhaps she'll die.\n\n$buf";
$buf .= "$current$phrase.\n$trail";
$buf =~ s/&/ to swallow a $current/;
}
say "$buf horse,\nShe died of course.";
মূল ধারণাটি হ'ল ছড়ার সমাপ্তি এবং পরেরটি শুরুতে রাখা $trail, আমরা পাশাপাশি চলতে চলতে এটি বাড়িয়ে তুলি। এটি প্রথম ব্যবহারের জন্য একটি বিশেষ কেসের প্রয়োজনে এবং ততক্ষণ প্রাণী-নির্দিষ্ট বাক্যাংশে পশুর নাম পরিবর্তনশীল পুনরায় ব্যবহারের চেষ্টা করে অ-তুচ্ছ তৈরি করেছে। আরও অনুকূলিতকরণ অন্তর্ভুক্ত:
- প্রতিটি কিছুর জন্য এক-চরিত্রের শনাক্তকারী
- পশুর তালিকার জন্য উদ্ধৃত স্ট্রিংয়ের পরিবর্তে খালি শব্দ ব্যবহার করা
- সঁচায়ক ব্যবহার
$_জন্য $bufসবচেয়ে প্রতিকল্পন অপারেশন কমান এমনকি আরও বেশি (ব্যবহারের @_অভ্যাসের জোর করে এবং অন্য কোনো চরিত্র চেয়ে আরো কিছু win না)
- প্রাণীর নাম ভেরিয়েবলের অভ্যন্তরে পূর্ববর্তী স্থান সহ (ভেরিয়েবল থেকে নেওয়া স্থানের অক্ষর
$")
- সর্বাধিক সাধারণ বাক্যাংশগুলি সংক্ষিপ্ত করতে রিজেক্সপ প্রতিস্থাপন:
' swallow'এবং'iggled '
- কোনও কোড ব্যবধান নেই যা কিছু এবং সমস্ত
\nস্ট্রিং লিটারেলগুলিকে আসল নিউলাইনগুলির সাথে প্রতিস্থাপন করা হয়েছে
সর্বশেষ অপটিমাইজেশন বাদে সমস্ত এটিকে দেয়:
@_ = (fly, spider, bird, cat, dog);
$_ = "There was an old lady who!ed a";
for $P ( "",
",\nThat wrJand Jand jJinside her",
",\nHow absurd&",
",\nImagine that&",
",\nWhat a hog&" ) {
$p = $c;
$c = $" . shift @_;
$t = $p ? "She!ed the$c to catch the$p,\n$t"
: "I don't know why she!ed that$c,\nPerhaps she'll die.\n\n$_";
$_ .= "$c$P.\n$t";
s/&/ to! a$c/;
}
s/!/ swallow/g;
s/J/iggled /g;
say "$_ horse,\nShe died of course.";
অতিরিক্তভাবে, এই গল্ফ অপ্রকাশিত এনকোডিং সমস্যার শিকার। যেহেতু এটি now এখন অবধি a নির্দিষ্ট এনকোডিংয়ে বাইটের পরিবর্তে স্বতন্ত্র চরিত্রগুলি গণনা করে, শুরু করার আগে ইউসিএস 2 থেকে প্রোগ্রামের উত্সটি ডিকোড করে একটি বড় অর্জন করা যায়। চূড়ান্ত ফলাফলটি খুব বেশি পঠনযোগ্য নয়, তবে এটি সংক্ষিপ্ত রয়েছে। (২৩৪ টি অক্ষর, perl -E''যথারীতি থেকে পৃথক হিসাবে গণনা করা হয় ) (এটিকে বৈধ ইউসিএস 2 তৈরি করতে আমাকে পিছনের নতুন লাইনের পিছনে অন্তর্ভুক্ত করতে হবে)
$ perl -MEncode=from_to -e'$_="䁟㴨晬礬獰楤敲Ɫ楲搬捡琬摯朩㬤弽≔桥牥⁷慳渠潬搠污摹⁷桯Ⅵ搠愢㭦潲⠢∬∬桡琠睲䩡湤⁊慮搠橊楮獩摥敲∬∬ੈ潷扳畲搦∬∬浡杩湥⁴桡琦∬∬桡琠愠桯朦∩笤瀽④㬤挽␢桩晴䁟㬤琽⑰㼢卨攡敤⁴桥④⁴漠捡瑣栠瑨攤瀬ਤ琢㨢䤠摯渧琠歮潷⁷桹桥Ⅵ搠瑨慴④Ⰺ健牨慰猠獨攧汬楥⸊ਤ弢㬤弮㴢④⸊⑴∻猯☯⁴漡④⽽猯ℯ睡汬潷⽧㭳⽊⽩杧汥搠⽧㭳慹∤张桯牳攬桥楥搠潦潵牳攮∊";from_to($_,utf8,ucs2);eval'
ইউনিকোডে আশ্রয় নেওয়ার আগে গল্ফ করার মতো অনেক কিছুই ছিল বা এটি খুব মজা পাবে না।
সম্পাদনা করুন: এই ব্রাউজারে 234-বর্ণের সংস্করণটি অনুলিপি / আটকানোর কোনও উপায় খুঁজে পাচ্ছে না, তাই আমি 235-অক্ষরটিকে রেখে দিচ্ছি। এই সন্ধ্যায় ঠিক করব, যখন আমি সত্যিকারের ইউটিএফ 8-সচেতন ক্লিপবোর্ডে হাত পাব। একটি উপায় খুঁজে পেয়েছি। আদর্শের উপর কোয়েস-প্রুফ।