समुद्र के तल में एक छेद है


48

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

कार्य एक प्रोग्राम या फ़ंक्शन लिखना है जो बिना इनपुट के स्वीकार करता है और निम्नलिखित पाठ का उत्पादन करता है:

There's a hole in the bottom of the sea
There's a hole in the bottom of the sea
There's a hole, there's a hole
There's a hole in the bottom of the sea

There's a log in the hole in the bottom of the sea
There's a log in the hole in the bottom of the sea
There's a hole, there's a hole
There's a hole in the bottom of the sea

There's a bump on the log in the hole in the bottom of the sea
There's a bump on the log in the hole in the bottom of the sea
There's a hole, there's a hole
There's a hole in the bottom of the sea

There's a frog on the bump on the log in the hole in the bottom of the sea
There's a frog on the bump on the log in the hole in the bottom of the sea
There's a hole, there's a hole
There's a hole in the bottom of the sea

There's a wart on the frog on the bump on the log in the hole in the bottom of the sea
There's a wart on the frog on the bump on the log in the hole in the bottom of the sea
There's a hole, there's a hole
There's a hole in the bottom of the sea

There's a hair on the wart on the frog on the bump on the log in the hole in the bottom of the sea
There's a hair on the wart on the frog on the bump on the log in the hole in the bottom of the sea
There's a hole, there's a hole
There's a hole in the bottom of the sea

There's a fly on the hair on the wart on the frog on the bump on the log in the hole in the bottom of the sea
There's a fly on the hair on the wart on the frog on the bump on the log in the hole in the bottom of the sea
There's a hole, there's a hole
There's a hole in the bottom of the sea

There's a flea on the fly on the hair on the wart on the frog on the bump on the log in the hole in the bottom of the sea
There's a flea on the fly on the hair on the wart on the frog on the bump on the log in the hole in the bottom of the sea
There's a hole, there's a hole
There's a hole in the bottom of the sea

There's a smile on the flea on the fly on the hair on the wart on the frog on the bump on the log in the hole in the bottom of the sea
There's a smile on the flea on the fly on the hair on the wart on the frog on the bump on the log in the hole in the bottom of the sea
There's a hole, there's a hole
There's a hole in the bottom of the sea

चुनौती नियम:

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

6
इसी के लिए वहाँ था एक बूढ़ी औरत (अन्य इसी तरह की चुनौतियों का इस जैसे डुप्लिकेट के रूप में बंद कर दिया गया है, हालांकि मुझे नहीं लगता कि वे आवश्यक रूप से करना चाहिए।)
जोनाथन एलन

6
हो, आरओ, रटलिन 'बोग, द वैली डाउन द वैली-ओ।
f --n .tɪk

4
तुलना के लिए (हालांकि एक प्रोग्रामिंग भाषा नहीं) gzip -5इसे 186 बाइट्स तक संपीड़ित करता है ( bzip2और xzलगता है कि यह और भी बदतर है)।
डैनियल शेपलर

2
बधाई, एक और डेवलपर माता-पिता से :)
AJFaraday

1
मैं इस गीत को 05AB1E में बदलना चाहता हूं ... "ओह-फाइव-ए-बी-वन-ई में एक छेद है!"
मैजिक ऑक्टोपस Urn

जवाबों:


23

एसओजीएल , 103 94 93 बाइट्स

Ψ ~Δ№Q‘离vζh‛←&M⁶╥7[P≈╔6≡⁸(φΔ\⅔Σ‚>≡ā⁷⁽○¹‘Ξ⁵K4s³‘⁽Bθ2n{@∑" the ”+Κ:bΚē‽:C}TPb"n@²‘+Tō, upcPøP

यहाँ कोशिश करो!

...‘                 push "bottom of the sea" - kept for the loop, here for 
    ...‘             push "hole in log in bump on frog on wart on hair on fly on flea on smile on"
        ...‘         push "there's a "
            ⁽        uppercase the 1st letter of that
             B       save "There's a " in B
              θ      split the long data string on spaces
               2n    split in arrays of length 2

{                     for each of those:
 @∑                   join the current array with spaces - e.g. "hole in"
   " the ”+           append " the " to it
           Κ          prepend that to "bottom of the sea" (or whatever it is now)
            :         create a copy
             bΚ       prepend B to it - finishes current line
               ē‽:C}  if (E++), save a copy of that in C (for the last line)

TP                   print the current line twice
  b"...‘+            B + "hole" - "There's a hole"
         T           output that, keeping item
          ō,         output ", "
             up      print the kept item lowercased
               cP    print the contents of C
                 øP  print an empty line

14
लेकिन .... लेकिन कैसे?
SomeShinyObject

8
अतुल्य। कैसे भी--
ऑस्टिन बुर्क

1
HNQ ने फिर किया हमला! : \
झबरा

4
क्या आप एक स्पष्टीकरण जोड़ना चाहेंगे? यह देखने के लिए उत्सुक है कि यह कैसे काम करता है।
केविन क्रूज़सेन

@KevinCruijssen ने कहा
द्विजिमा

19

स्टैक्स , 90 87 75 बाइट्स

¥▌▼h4█☻■Ω1gçΔ¶Zjµ│☺X▄)/╞▄╒)¥jêLqα╧ñu┌⌂½╧ûⁿ↕O◘╔╪kl<æàbπïfuσ♪╫qΓ╪ûQ├╘Te♥Æó♣ƒE

इसे चलाएं और डीबग करें

अनपैक्ड, अनगोल्डेड और टिप्पणी की गई यह इस तरह दिखता है।

`;$w]i"50h1&V~OP>F$`            compressed literal for "There's a hole in the bottom of the sea"
X                               store in register X without popping
zG                              push an empty string and jump to the target (trailing }) 
`hfUiVx}.|j~vG12])Bxk?v zF`j    split "log bump frog wart hair fly flea smile" into array of words
F                               for each word, execute the following
  i. o. i?                      (i ? " o" : " i") where i is the 0-based iteration index
  +                             concatenate to the word
  `_o9!`+                       concatenate "n the "
  G                             jump to target below, resume next foreach iteration when finished
}                               this is the target of `G`, execution resumes when finished
  As|@                          insert substring at position 10
  QQ                            peek and print with newlines twice
  x14(                          trim string to leftmost 14 characters
  q                             peek and print without newlines
  ., p                          print ", " without newline
  vP                            lowercase 14 characters and print with newline
  xP                            push value of register X, then print with newline
  zP                            print blank line

इसको चलाओ


2
क्या आप एक स्पष्टीकरण जोड़ना चाहेंगे? यह देखने के लिए उत्सुक है कि यह कैसे काम करता है।
केविन क्रूज़सेन

मैं करूंगा लेकिन मुझे अभी भी यह एहसास है कि एक अलग दृष्टिकोण बेहतर होगा। इसमें सफल होने या असफल होने के बाद जो कुछ भी बचा है मैं उसे समझाऊंगा।
पुनरावर्ती

1
@ केविनक्रूजसेन: मुझे इस बात का अहसास था कि बहुत बेहतर दृष्टिकोण था। निश्चित रूप से पर्याप्त है, मैंने इसे पूरी तरह से फिर से लिखा, और ब्लोट के एक और 12 बाइट्स को बचाया। मैंने कुछ स्पष्टीकरण भी जोड़ा।
पुनरावर्ती

16

पर्ल 5, 158 154 बाइट्स

$_="There's a bottom of the sea
";for$,(<{{hole,log}" i",{bump,frog,wart,hair,fly,flea,smile}" o"}>){s/a/a $,n the/;say$_.$_.($t||=s/.{14}/$&, \l$&
$&/r)}

154 बाइट्स

158 बाइट्स


5
There's a bottom of the sea। तथ्यों की जाँच करें, +1
जो राजा

:), वहाँ भी इस भिन्नता के साथ शुरू होता है, There's a seaलेकिन यह लंबे समय तक है
नहुएल फौइउल

13

पायथन 2 , 202 190 187 185 183 182 181 बाइट्स

s="bottom of the sea\n"
a="There's a "
for w in'hole log bump frog wart hair fly flea smile'.split():s=w+" %sn the "%'io'['g'in s]+s;print(a+s)*2+a+"hole, t%shole\n"%a[1:]+a+s[-30:]

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

पुराने विकल्प 'io'['g'in s](13 बाइट्स):

  • 14: 'oi'[s[5]<'n']
  • 15: 'io'[len(s)>30], 'ioo'[len(s)%3], 'ooi'[len(s)%4], और'io'[w[1]=='o']

बचाया:

  • -1 बाइट, जोनाथन एलन को धन्यवाद
  • -1 बाइट, रॉड की बदौलत
  • -1 बाइट, एग्री द आउटगॉल्फ को धन्यवाद

"hole, t%shole\n"%a[1:]एक बाइट बचाता है
जोनाथन एलन

आप ज़िप
रॉड

@JonathanAllan धन्यवाद :)
TFeld

@ राड धन्यवाद, :-)
TFeld

'oi'[s[5]<'n']एक पुराना विकल्प भी होगा: विशेषता 'io'['g'in s]!
को आउटगोल्फ को एरिक

13

सी (जीसीसी) , 261 246 236 बाइट्स

#define X" on the "
char*a="smile"X"flea"X"fly"X"hair"X"wart"X"frog"X"bump"X"log in the hole in the bottom of the sea\n";f(i){for(i=0;i<9;)printf("T%s%sT%1$s%2$sT%1$shole, t%1$shole\nT%1$s%3$s\n","here's a ",a+"_TH<0$\31\r"[i++],a+95);}

-15 बाइट्स, डैनियल स्कल्पर
-10 बाइट्स के लिए धन्यवाद, सीलिंगकैट के लिए धन्यवाद

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


2
क्या आप ,*b="_TH<0$\31\r"इसके बजाय लिख सकते हैं ?
डैनियल शेपलर

क्या यह "में" को परिभाषित करने के लिए किसी भी बाइट को बचाएगा?
ओल्डबुननी 2800

@ OldBunny2800 नहीं, यह अधिक लंबा होगा ! इस मामले में आपको प्रभावी होने के लिए कम से कम 6 घटनाओं की आवश्यकता है ...
जियाको गारबेलो

12

05AB1E , 103 100 99 97 96 93 92 बाइट्स

केविन क्रूज़सेन को एक बाइट धन्यवाद दिया

“¥ÊˆŽ bumpÑå‡îtíÁ¤†îÌea¹²“#v’T€Î's a ’s„oiN2‹èy“ÿ ÿn€€ ÿ“©“—耂€€í™“JDN_iDU}X14£Dl‚„, ýXõ»,®

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

व्याख्या

“¥ÊˆŽ bumpÑå‡îtíÁ¤†îÌea¹²“#vसूची पर एक लूप शुरू करता है ["hole", "log", "bump", "frog", "wart", "hair", "fly", "flea", "smile"]। शब्द 05AB1E शब्दकोश का उपयोग कर संपीड़ित हैं।

प्रत्येक पर हम करते हैं:

’T€Î's a ’    # push the string "There's a "
s             # move the string from the previous iteration to the top of the stack
              # will be an empty string the first iteration since there is no input
„oiN2‹è       # push "i" for the first 2 iterations and "o" otherwise
y             # push the current word
“ÿ ÿn€€ ÿ“    # use interpolacing to create the meat of the current iteration string
              # meaning "hole in the ", "log in the hole in the " and so on
©             # store a copy in the register for the next iteration
“—耂€€í™“    # push the string "bottom of the sea"
JD            # join the whole line together and duplicate it
N_iDU}        # if this is the first iteration, store a copy of the line in X
X14£          # push the first 14 chars of X, which is "There's a hole"
Dl            # make a lower-case copy
‚„, ý         # join the original with the lowercase copy on ", ", forming line 3
X             # push X which is line 4
õ             # push and empty string, to create the line break between sections
»,            # join the whole section on newlines and print
®             # push the register for the next iteration


1
@ केविनक्रूजसेन: ओह हाँ, मुझे नहीं लगा कि आमतौर पर इनपुट होता है। धन्यवाद :)
एमिग्ना

11

पॉवरशेल , 194 188 185 180 174 बाइट्स

$z=$a="in the bottom of the sea"
$b="here's a"
$h="$b hole"
echo hole log bump frog wart hair fly flea smile|%{,"T$b $_ $a"*2
$a='oi'[!$j++]+"n the $_ $a"
"T$h, t$h
T$h $z
"}

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

काफी अजगर को पकड़ने के लिए प्रतीत नहीं कर सकते ...

असल में, कुछ आम तार करने के लिए सेट $h, $a, $z, और $b, फिर से चला जाता है वस्तुओं में से प्रत्येक के माध्यम से एक पाश के माध्यम से ( hole, log, ... flea, smile), प्रत्येक यात्रा उचित कविता outputting। ऐसा !$j++होने वाले in/ onस्विच के लिए खाते के बीच में थोड़ा तर्क है। अन्यथा, सभी तार बस पाइप लाइन पर छोड़ दिए जाते हैं, और डिफ़ॉल्ट Write-Outputहमें मुफ्त में नई सुर्खियाँ देता है।

-6 बाइट्स अरनौलड को धन्यवाद।
-3 बाइट्स mazzy के लिए धन्यवाद।
-5 बाइट्स Veskah के लिए धन्यवाद।
-6 बाइट्स mazzy के लिए धन्यवाद।



@ माज़ी एक चतुर चाल है। मुझे इसे ध्यान में रखना होगा, क्योंकि मैं -splitशब्दों को प्राप्त करने के लिए काफी उपयोग करता हूं ।
AdmBorkBork




9

जावास्क्रिप्ट (ईएस 6),  201 194 189 188  187 बाइट्स

@ बस्ती के लिए 1 बाइट का धन्यवाद सहेजा गया

_=>`14log4bump5frog5wart5hair5fly5flea5smile5`.replace(/.+?\d/g,w=>`T0${(p=w+3+p)+p}1, t01
T01432
`.replace(/\d/g,n=>`here's a |hole|bottom of the sea
|n the | i| o`.split`|`[n]),p=`2T0`)

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


जावास्क्रिप्ट (ईएस 6), 235 बाइट्स

बस RegPack'ed

_=>[..."Z[]^_$cdjkqvxz{}~"].reduce((p,c)=>(l=p.split(c)).join(l.pop()),`Tj{{}qq}$$}~~}dd}__}xx}cc}[[v~ frogz$}v
Z{kZz on^x flyz_v], tj]Zkq log in^{k] in^ bottom of^ seajhere's ad wartz~c fleazx$ bumpzq_ hairzd^ the] hole[ smilezcZ
Tj`)

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



7

जाप्ट -Rx, 126 116 113 112 111 109 107 बाइट्स

यह पता चला है कि बूस्टर के नीचे अपने फोन पर एक स्ट्रिंग संपीड़न चुनौती गोल्फिंग अविश्वसनीय रूप से मुश्किल है - जो थन होगा ?!

`T's»dâ ÈÞ­omºfdÈ a`rdS
tE8
¯E
`logn¿mpnfgnØnirnf§nf¤Úè`qÍË2ÆiAV¯E©8 iF¯E ÔqVri'oÃpW+v iSi,)UPÃc

झसे आज़माओ

                                              :The first 3 lines get assigned to variables U, V & W, respectively
`...`                                         :The compressed string "There'sdadholedindthedbottomdofdthedsea"
     rdS                                      :Replace all "d"s with spaces
tE8                                           :Substring of U from 0-based index 14 (E), of length 8 (="  in the ")
¯E                                            :Slice U to index 14 (="There's a hole")
`...`                                         :The compressed string "lognbumpnfrognwartnhairnflynfleasmilent"
     qÍ                                       :Split on "n" (note that the last element is irrelevant)
       Ë                                      :Map each element at 0-based index E in array F
        2Æ                                    :  Map the range [0,2)
          iA                                  :    Insert the following in U at index 10
            V¯                                :      V sliced to index
              E©8                             :        Logical AND of E and 8 (=0 on first iteration, 8 on all others)
                  i                           :      Prepend
                   F¯E                        :        Slice F to index E
                       Ô                      :        Reverse
                        q                     :        Join with
                         Vri'o                :          Replace "i" with "o" in V
                              Ã               :  End map
                               p              :  Push
                                W+            :    W appended with
                                  v           :      W lowercased
                                    iSi,      :      Prepended with a space prepended with a comma
                                        )     :    End append
                                         UP   :    U and an empty string
                                           Ã  :End map
                                            c :Flatten
                                              :Implicitly join with newlines, trim & output

7

एक्सएमएल, 719 673 603 514 493 486 बाइट्स

<!DOCTYPE a[<!ENTITY T "There's a"><!ENTITY O " on the"><!ENTITY a " hole in the bottom of the sea
"><!ENTITY b " log in the&a;"><!ENTITY c " bump&O;&b;"><!ENTITY d " frog&O;&c;"><!ENTITY e " wart&O;&d;"><!ENTITY f " hair&O;&e;"><!ENTITY g " fly&O;&f;"><!ENTITY i " flea&O;&g;"><!ENTITY z "&T; hole, there's a hole
&T;&a;
">]><a>&T;&a;&T;&a;&z;&T;&b;&T;&b;&z;&T;&c;&T;&c;&z;&T;&d;&T;&d;&z;&T;&e;&T;&e;&z;&T;&f;&T;&f;&z;&T;&g;&T;&g;&z;&T;&i;&T;&i;&z;&T; smile&O;&i;&T; smile&O;&i;&z;</a>

आप इसे "निष्पादित" कर सकते हैं xmlstarlet sel -t -m '//a' -v . -n <xml_file_here>

यह बहुत आसान होगा यदि XML इतना वर्बोज़ नहीं था, लेकिन उज्ज्वल पक्ष पर, यह मूल पाठ के 25% से कम है।


5

रेटिना 0.8.2 , 150 बाइट्स


THsmile oNflea oNfly oNhair oNwart oNfrog oNbump oNlog iNE
N
$&$'¶TH
O^$`

.+
$&¶$&¶THW, tHW¶THE¶
H
here's a 
E
W iNbottom of the sea
W
hole
N
n the 

इसे ऑनलाइन आज़माएं! स्पष्टीकरण:


THsmile oNflea oNfly oNhair oNwart oNfrog oNbump oNlog iNE

अंतिम कविता डालें।

N
$&$'¶TH

सभी छंदों की गणना करें।

O^$`

छंदों को सही क्रम में लगाएं।

.+
$&¶$&¶THW, tHW¶THE¶

प्रत्येक कविता को पूरा करें और कोरस जोड़ें।

H
here's a 
E
W iNbottom of the sea
W
hole
N
n the 

कुछ प्लेसहोल्डर्स का विस्तार करें।



5

PHP, 180 178 बाइट्स

foreach([hole,log,bump,frog,wart,hair,fly,flea,smile]as$w)echo$a=T.($b="here's a ").($s="$w ".io[++$i>2]."n the $s").$c="bottom of the sea
",$a,T,$b.=hole,", t$b
T$b in the $c
";

इसे ऑनलाइन चलाएं -nrया इसके लिए प्रयास करें

PHP 7.2 में पैदावार चेतावनी; ठीक करने के लिए, चारों ओर उद्धरण डाल
सरणी तत्वों, io, holeऔर दो स्टैंडअलोन T





4

बैच, 267 बाइट्स

@echo off
set r=i
set t= There's a hole
set s=bottom of the sea
for %%w in (hole log bump frog wart hair fly flea smile)do call:c %%w
exit/b
:c
set s=%1 %r%n the %s%
echo%t:~,11%%s%
echo%t:~,11%%s%
echo%t%,%t:T=t%
echo%t%%s:~-25%
echo(
if %1==log set r=o

tकोरस में दोहराई जाने वाली एक स्ट्रिंग होती है, sजिसमें अधिकांश पद्य पंक्ति होती है, जबकि rबीच में in theऔर चुनता है on the। छंद में, केवल पहले 11 के पात्रों tकी जरूरत है, जबकि पहले कोरस लाइन में की दूसरी प्रति tअपनी है Tलोवरकेस और दूसरी कोरस रेखा के अंतिम 25 वर्ण पुनः उपयोग कर लेता s



4

हास्केल , 243 215 बाइट्स

Nimi की बड़ी मदद से 215 बाइट्स में कमी

c[[l n,l n,'T'#h++", "++'t'#h,l 8,""]|n<-[8,7..0]]
t#u=t:"here's a "++u
h="hole"
c=concat
l n='T'#c(drop n$map(++" on the ")(words"smile flea fly hair wart frog bump")++["log in the ",h," in the bottom of the sea"])

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

(पुराना 243 बाइट संस्करण यहां है )।

एक बहुत सीधा समाधान।

-- main function producing a list of lines
v = concat [[
    l n,
    l n, -- second line of each verse equals to its first line
    'T' # h ++ ", " ++ 't' # h,
    l 8, -- last line of each verse is the same in all verses
    ""
  ] | n <- [8,7..0]]

-- a small helper to construct similar strings 
t # u = t : "here's a " ++ u

h = "hole"

-- construct a first line of n-th verse (with n = 8 is the first and n = 0 is the last one)
-- Every such line begins with a constant prefix followed by expanding list of nested entities
l n = 'T' # concat (
      drop n $
         map (++ " on the ") (words "smile flea fly hair wart frog bump")
         ++ ["log in the ", h, " in the bottom of the sea"]
    )

1
कुछ सुझाव: ए) आप sकेवल एक बार उपयोग करते हैं, इसलिए आप इसे इनलाइन कर सकते हैं। बी) आप हमेशा कुछ करने के लिए आगे बढ़ते हैं और आगे बढ़ते हैं t, इसलिए आप इसे एक (इन्फिक्स) फ़ंक्शन बना सकते हैं t#u=t:"here's a "++u:। ग) के lसाथ समारोह में बड़ी सूची का निर्माण map(++" on the ")(words"smile flea ..."कम है। इसके अलावा: सूची में संलग्न सब कुछ सूची में ही स्थानांतरित करें। घ) अब ड्रॉप करने के लिए संख्याओं की सूची 8नीचे से 0(एकल अंक संख्या!) ई तक चलती है , अब इनलाइनिंग iभी कुछ बाइट्स बचाती है। च) अपने मुख्य कार्य को नाम देने की कोई आवश्यकता नहीं है। हमारे मेटा के अनुसार, हास्केल मूल्यों को उचित कार्य माना जाता है, इसलिए ड्रॉप करें v=
दोपहर 31:04

... सभी 215 बाइट्स में सभी इसे ऑनलाइन आज़माएं!
दोपहर 31:04

1
सहेजने के लिए एक और 3 बाइट्स: सूची की समझ के बजाय आप सूची में >>=मोनोएड और concatफ़ंक्शन में इनलाइन (कॉनटैप्ट) का उपयोग कर सकते हैं lइसे ऑनलाइन आज़माएं!
nimi

3

जावास्क्रिप्ट (बैबेल नोड) , 239 बाइट्स

-7 ऑवर्स @ ऑलीवर से *.*

(x=0,r='hole0log0bump0frog0wart0hair0fly0flea0smile'.split`0`).map(a=>(t=(i="There's a ")+a+r.slice(0,x++).reverse().map((h,_)=>` ${"io"[_<x-2|0]}n the ${h}`).join``+(o=` in the bottom of the sea
`))+t+(`${k=i+"hole"}, ${k}
`)+k+o).join`
`

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


1
Tप्रत्येक कविता की तीसरी पंक्ति पर ते सेकेंड लोअरकेस होना चाहिए।
शैगी

3

पायथन 3 , 213 206 198 193 बाइट्स

k='n the ';o=e='bottom of the sea\n';b="There's a ";h='hole'
for j in[h]+'log bump frog wart hair fly smile'.split():o=j+' '+'io'['g'in o]+k+o;print(b+o+b+o+b+h+', t'+b[1:]+h+'\n'+b+h+' i'+k+e)

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


-15 बाइट्स @Sara
-5 बाइट्स के लिए धन्यवाद @ ASCII- केवल

शायद थोड़ा और अधिक गोल्फ, लेकिन ज्यादा नहीं।



@ सराज धन्यवाद। मैं (स्पष्ट रूप से गलत) धारणा है कि के तहत किया गया o=e=दोनों बनाना होगा oऔर eएक ही वस्तु को देखें। मैंने भी सोचा था कि विभाजन अधिक लंबा होगा।
आर्टेमिस फॉवल

@ArtemisFowl oऔर e है एक ही वस्तु को देखें ... यह सिर्फ इतना है कि तार अजगर में अडिग हैं तो तरह बातें +=एक नई प्रतिलिपि बनाएगा बजाय मौजूदा एक परिवर्तनशील
ASCII-केवल


@ ASCII- केवल मुझे पता है, लेकिन मुझे लगा कि अजगर ने किसी तरह सुनिश्चित किया कि वे एक ही वस्तु को संदर्भित करते रहें
आर्टेमिस फॉवेल


2

CQuents , 238 219 बाइट्स

|@
#36::"T"~c1)~j\rbk));@ )~c2,Z,"T"~c1)~"hole, t"~c1)~"hole","T"~c1)~c2)~@

::"","log in the","bump"~c3,"frog"~c3,"wart"~c3,"hair"~c3,"fly"~c3,"flea"~c3,"smile"~c3
:"here's a ","hole in the bottom of the sea"," on the"

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

इस चुनौती ने मुझे अपनी भाषा में सूचियों और तार को आखिरकार लागू किया। यह भाषा पूर्णांक अनुक्रमों के लिए बनाई गई है, इसलिए इसने बहुत अच्छा किया!

व्याख्या

:"here's a ","hole in the bottom of the sea"," on the"

    helper line: c1), c2), and c3) access the three terms in this list

::"","log in the","bump"~c3,"frog"~c3,"wart"~c3,"hair"~c3,"fly"~c3,"flea"~c3,"smile"~c3

    helper line: yields a list containing the first n terms in it, accessed with bx)
    for example, the first three terms are:

"","log in the","bump"~c3

    so b3) would yield ["","log in the","bump on the"] (~ is concatenation and c3 is " on the")


|@
#36::"T"~c1)~j\rbk));@ )~c2,Z,"T"~c1)~"hole, t"~c1)~"hole","T"~c1)~c2)~@


|@
                              join sequence on literal newline
#36::                         output first 36 terms in sequence joined together
                              following are the 4 terms in the sequence, which will cycle through 9 times (for a total of 36 terms)
"T"~c1)~j\rbk));@ )~c2,       first term
"T"~c1)~                      "T" concat "here's a " concat
        j\rbk));@ )           the first k terms of b, reversed, and joined on " "
                   ~c2,       concat "hole in the bottom of the sea"
Z,                            second term - same as previous
"T"~c1)~"hole, t"~c1)~"hole", third term
"T"~c1)~                      "T" concat "here's a " concat
        "hole, t"~c1)~"hole", "hole, t" concat "here's a " concat "hole"
"T"~c1)~c2)~@
                              fourth term - "T" concat "here's a " concat "hole on the bottom of the sea" concat newline

2

पर्ल 5 , 194 बाइट्स

@ ASCII- केवल 6 बाइट्स का शाब्दिक अर्थ के साथ बाइट करता है और एक \lट्रिक जिसके बारे में मैं भूल गया था

$"=" on the ";say+($b=($e="There's a ").hole,$c=" in the bottom of the sea",$/)x2,$.="$b, \l$b
$b$c
";say"$e@a[-$_..-1] in the hole$c
"x2,$.for 1..(@a=qw/smile flea fly hair wart frog bump log/)

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



हाँ। अच्छा काम। मुझे निश्चित के लिए नई कहानियों को याद रखना चाहिए था। मैंने पहले देखा है \l, लेकिन कभी भी इसका उपयोग करने का कारण नहीं था, इसलिए इसके बारे में कभी नहीं सोचा था।
Xcali




2

चारकोल , 115 106 बाइट्स

≔There's a holeθEE⁹⁺…θχ⪫⮌…⪪”↶±∧⟲!↶⁼,(_⎇RB↧ω⪪zθⅉQθ`✳&⬤⸿◧σ⁻y▷»ΣK▶↙⁻υX`SξQ6 /ι⁹Wq”x⁺²ιn the ⟦ιι⁺⁺θ, ↧θ⁺θ✂ι±²⁵

इसे ऑनलाइन आज़माएं! लिंक कोड के वर्बोज़ संस्करण के लिए है। संपादित करें: कोरस की अंतिम पंक्ति के लिए मेरा बैच कोड कॉपी करके 9 बाइट्स सहेजे गए। स्पष्टीकरण:

≔There's a holeθ

स्ट्रिंग को सहेजें There's a hole, जिसका उपयोग दो बार किया जाता है-जैसे, तीसरी बार निचले मामले में, और चौथी बार भी लेकिन सिर्फ पहले 10 अक्षर।

⪪”↶±∧⟲!↶⁼,(_⎇RB↧ω⪪zθⅉQθ`✳&⬤⸿◧σ⁻y▷»ΣK▶↙⁻υX`SξQ6 /ι⁹Wq”x

स्ट्रिंग bottom of the seaxhole ixlog ixbump oxfrog oxwart oxhair oxfly oxflea oxsmile oको xएस पर विभाजित करें ।

E⁹⁺…θχ⪫⮌…...⁺²ιn the 

9 छंदों पर लूप i+2करें, सरणी के पहले तत्वों को लेते हुए , उन्हें उलट कर, उनके साथ n theजोड़कर, और There's aपरिणाम के लिए उपसर्ग करें।

E...⟦ιι⁺⁺θ, ↧θ⁺θ✂ι±²⁵

लाइन को डुप्लिकेट और कोरस का निर्माण करके प्रत्येक पंक्ति को एक कविता में विस्तारित करें। पद्य की प्रत्येक पंक्ति को तब प्रत्येक पंक्ति में अंतर्निहित रूप से मुद्रित किया जाता है, और प्रत्येक पद को एक रिक्त रेखा द्वारा अलग किया जाता है।


2

वी , 184 170 बाइट्स

4iThere's a hole in the bottom of the sea
kky5w5eá,lpD5brtHj4yyGp4w8ion the 2briilog 3bibump 3bifrog 3biwart 3bihair 3bifly 3biflea 3bismile 7ñ4yykp4wd3wñ8ñÄ5jñ

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

स्पष्टीकरण:

  • 4iThere's a hole in the bottom of the sea<\n><esc> "थेरेस 'को 4 बार समुद्र के तल में एक छेद डालें"।
  • kk तीसरी लाइन पर जाएं
  • y5w कॉपी "एक छेद है"
  • 5eá, "वहाँ एक छेद है" के बाद अल्पविराम डालें
  • lp अल्पविराम के बाद पेस्ट
  • D शेष पंक्ति हटाएं
  • 5brt दूसरा टी नीचे करें
  • Hj4yy दूसरी लाइन से 4 लाइन कॉपी करें
  • Gp पहली पंक्ति के बाद सब कुछ चिपकाएं
  • 4w8ion the <esc>(पहली कविता के अंत में) दूसरे कविता में पहले "छेद" में जाएं और "8 बार" डालें
  • 2briilog <esc> पीछे की ओर अंतिम "पर" जाएं, ओ को एक i से बदलें और फिर "लॉग" डालें
  • 3bibump <esc>3bifrog <esc>3biwart <esc>3bihair <esc>3bifly <esc>3biflea <esc>3bismile <esc> पंक्ति के माध्यम से पीछे की ओर ले जाएँ, प्रत्येक के बीच उपयुक्त शब्दों को सम्मिलित करते हुए "पर"
  • 7ñ4yykp4wd3wñ4yykp4wd3w7 बार निष्पादित करें
    • 4yykp इस से पहले कविता को डुप्लिकेट करें
    • 4wd3w "एक छेद है" के बाद पहले शब्द पर जाएं और 3 शब्द हटाएं
  • 8ñÄ5jñ पहले के बाद प्रत्येक कविता की पहली पंक्ति की नकल करें (ऐसा करने के लिए इनमें से 8 हैं)

2

/// , 216 बाइट्स

/V/\/\///U/\/ VS/TCVR/iBVQUtheVPUoBVOUholeVN/RASVM/ASO, tCO
SA
VL/RMSVKUlog VJUbumpPKVIUfrogPJVHUwartPIVGUhairPHVFUflyPGVEUfleaPFVDUsmilePEVC/here's aVB/nQVA/O R bottom ofQ sea
/SASMSKNKLJNJLINILHNHLGNGLFNFLENELDNDRM

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

इस तरह का कार्य एक और केवल एक चीज है जो /// यथोचित रूप से अच्छी है। : D अरे, परिणाम C, C # या Java से छोटा है!

इस कार्यक्रम से आउटपुट दो अनुगामी रेखा विराम में समाप्त होता है; आशा है कि एक सौदा ब्रेकर नहीं है।

वैसे भी, यहाँ कोई वास्तविक चतुराई नहीं है। मैंने बस बार-बार तार की पहचान की और उनके लिए एक-चरित्र शॉर्टकट को परिभाषित किया, और तब तक दोहराया जब तक कि मैंने कोई और दोहराया तार नहीं देखा। मैंने यह अधिक-या-कम भोली और लालची फैशन में किया। हालांकि, मैंने जानबूझकर "समुद्र पर पिस्सू पर मुस्कान ..." के लिए एक शॉर्टकट परिभाषित किया, उसके बाद "समुद्र पर मक्खी पर पिस्सू ... समुद्र", और आगे, ताकि शॉर्टकट की एक श्रृंखला बनाई जा सके। । परिणाम यह है कि नई संज्ञाओं का पूरा क्रम कोड में स्पष्ट रूप से दिखाई देता है, और मुझे लगता है कि यह बहुत ही मनभावन है। :)

वी और यू को बदलने के बाद, हमारे पास निम्नलिखित अधिक पठनीय कोड हैं:

/S/TC//R/iB//Q/ the//P/ oB//O/ hole//N/RAS//M/ASO, tCO
SA
//L/RMS//K/ log //J/ bumpPK//I/ frogPJ//H/ wartPI//G/ hairPH//F/ flyPG//E/ fleaPF//D/ smilePE//C/here's a//B/nQ//A/O R bottom ofQ sea
/SASMSKNKLJNJLINILHNHLGNGLFNFLENELDNDRM

2

लाटेक्स, 265 268 अक्षर

\documentclass{book}\input{pgffor}\def\i{bottom of the sea}\let~\i\def\b{here's a }\def\h{hole}\def\s#1{ in}\begin{document}\foreach\x in{\h\s,log\s,bump,frog,wart,hair,fly,flea,smile}{\xdef~{\x{ on} the ~}T\b~\\T\b~\\T\b\h, t\b\h\\T\b\h\,in the \i\par}\enddocument

पैराग्राफ इंडेंटेशन और सब कुछ के साथ एक अच्छा पीडीएफ में संकलित करता है।

असंबद्ध और टिप्पणी:

\documentclass{book}
\input{pgffor}
\def\i{bottom of the sea}   %for re-use in the last two verses 
\let~\i                     %here I keep attaching words
\def\b{here's a }               
\def\h{hole}
\def\s#1{ in}               %this replaces the next token with "in", useful for log and hole where "in" is used instead of"on"
\begin{document}
\foreach\x in{\h\s,log\s,bump,frog,wart,hair,fly,flea,smile}{
    \xdef~{\x{ on} the ~}   %keep attaching words and on/on to ~
    T\b~\\                  %verse 1
    T\b~\\                  %verse 2
    T\b\h, t\b\h\\          %verse 3
    T\b\h\,in the \i\par    %verse 4
}
\enddocument

आउटपुट का:

यहाँ छवि विवरण दर्ज करें


2

सी # (विजुअल सी # इंटरएक्टिव कंपाइलर) , 220 बाइट्स

string b="There's a ",d="hole in the bottom of the sea\n",e,f;" log bump frog wart hair fly flea smile".Split().Any(s=>Write((e=b+(f=s!=""?s+(f!=""?" o":" i")+"n the "+f:s)+d)+e+b+$@"hole, there's a hole
{b+d}
")is int);

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

-5 बाइट्स @ASCIIOnly के लिए धन्यवाद और -2 बाइट्स @someone को धन्यवाद!

मेरे पास एक छोटा बच्चा है और मैं आपको आश्वस्त कर सकता हूं कि यह गीत बराबर भागों को आकर्षक और कष्टप्रद है।


1
मुझे खेद है कि आपको यह याद दिलाया गया कि यह मौजूद है: ओ)
सोक



और आप के बाद अंतरिक्ष की जरूरत नहीं है inमें foreach> _>
ASCII-केवल

@ASCIIOnly - सुझावों के लिए धन्यवाद :)
दाना
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.