Limerick Hello World [ปิด]


28

โปรแกรมบทกวีที่คุณเขียน
ความพยายามที่จะชนะการต่อสู้
เพื่อชนะการประกวดและลงคะแนน
มันต้องคำนวณ "Hello World"
จากนั้นพิมพ์อย่างสุภาพมาก

บทกวียอดนิยมจะชนะ

ข้อกำหนดคือ:

  • บทกวีควรมี5 บรรทัดพร้อมเพลงบรรเลง AABBA
  • มันสามารถพิมพ์สิ่งที่คุณต้องการ แต่ผลลัพธ์ควรมี "hello world" (ตัวพิมพ์ใหญ่ / ตัวพิมพ์เล็กไม่สำคัญราคาไม่รวมอยู่ในผลลัพธ์)
  • สัญลักษณ์จะอ่านออกเสียง ตัวอย่างเช่นอ่านบรรทัดที่สี่ด้านบน: ต้องคำนวณคำพูดคำพูด hello world
  • โพสต์รหัสของคุณด้านล่างในตัวอย่างโค้ดอื่นเวอร์ชัน "อ่านออกเสียง" ของรหัสของคุณสำหรับแก้ความกำกวมสัญลักษณ์พิเศษ

ไม่รวมเป็นบทกวี:

  • รวมถึงรหัสที่ตายแล้วหรือตัวละครที่สามารถลบได้อย่างปลอดภัยโดยไม่ต้องเปลี่ยนเพลงหรือฟังก์ชั่น
  • การใช้ความคิดเห็นเป็นวิธีในการสัมผัส (ยกเว้นในกรณีที่มีเหตุผลที่ดีสำหรับเรื่องนั้น)
  • ใช้สัญลักษณ์เดียวกันกับจุดสิ้นสุดของวลีสำหรับสัมผัส

ในกรณีที่เสมอกันโปรแกรมที่ส่งผลให้บทกวีจะเป็นผู้ชนะ หากยังมีเสมอโปรแกรมที่สั้นกว่าจะชนะ

บรรทัดใหม่จะไม่ถูกนับ ช่องว่างแท็บและการขึ้นบรรทัดใหม่จะไม่อ่านออกเสียง ตัวอย่างเช่น "สวัสดีโลก!" จะอ่านออกเสียง "เครื่องหมายคำพูดสองจุดสวัสดีเครื่องหมายจุลภาคโลกเครื่องหมายอัศเจรีย์"


ทั้งความต้องการของโปรแกรมจะเป็นห้าเส้น? คำตอบไม่สามารถเป็นเพียงตัวอย่างข้อมูลของคำสั่งที่จำเป็นใช่ไหม ไม่รวมการประกาศคลาส / ฟังก์ชั่นและทั้งหมด?
mikhailcazi

ใช่โปรแกรมทั้งหมดจะต้องมีห้าบรรทัด พยายามกระจายคำจำกัดความของคุณและรวมไปตามบรรทัด PL ส่วนใหญ่มีวิธีรวมประโยคหลายประโยคในบรรทัดเดียวด้วยเซมิโคลอนหรือที่คล้ายกัน
Mikaël Mayer

ฉันเห็นว่าคำตอบจำนวนมากกำลังพยายามสร้างโคลงเพราะคุณพูดถึงคำนั้นในชื่อของคุณ แต่ไม่ใช่ในความต้องการของคุณ
TRiG

นั่นเป็นเรื่องจริง ฉันต้องการให้โปรแกรมเป็นลิเมอร์ริคเท่านั้น
Mikaël Mayer

ฉันลงคะแนนให้ปิดสิ่งนี้ในวงกว้างเกินไปเนื่องจากไม่มีวิธีการตรวจสอบอย่างเป็นกลางว่าคำตอบนั้นถูกต้องหรือไม่
ข้าวสาลีตัวช่วยสร้าง

คำตอบ:


86

ช่องว่าง

โปรแกรมบทกวีที่ฉันเขียน  	   
	
     		  	 	
	
บทกวีของช่องว่างและขยายนี้		 		  
	
     		 		  
	
เพราะการขึ้นบรรทัดใหม่จะไม่นับ  		 				
	
     	     
	
แม้จะมีปริมาณ   	 	 			
	
     		 				
	
ดังนั้นสมควร upvote จริงใจของคุณ 			  	 
	
     		 		  
	
     		  	  
	
  


Wikipedia: Whitespace (ภาษาการเขียนโปรแกรม)
ล่ามออนไลน์เป็นคำตอบทดสอบ

เอาท์พุท:

สวัสดีชาวโลก

3
นี้อย่างใดทำให้ผมนึกถึงบีเทิลส์มาร่วมกัน
user12205

7
แน่นอนว่า "เหนือฉัน"
แทรกบ๊อบ

6
ไม่รวม: การใช้ความคิดเห็นเป็นวิธีในการสัมผัส
ไม่ใช่ Charles

2
ฉันลืมว่าตัวอักษรอื่น ๆ เป็นความคิดเห็นในช่องว่าง ฉันไม่คิดว่าฉันจะรักษากฎนี้เพราะจะทำให้ผู้ชนะคนนี้ทำลาย
Mikaël Mayer

3
@ MikaëlMayerฉันคิดว่าคุณควรรักษากฎ ฉันสงสัยว่าคะแนนเสียงเหล่านี้ส่วนใหญ่มาจากคนที่เพิ่งค้นพบเสน่ห์ของ Whitespace โดยส่วนตัวแล้วฉันสนใจที่จะเห็นคำตอบในจิตวิญญาณของความท้าทายที่แท้จริงของรหัสบทกวี
Jason C

60

HTML

<html>
<body><span
    class="poem"
    > Hello World! I'm a goat
</span></body></html><!-- Pecan -->

ฉันต้องได้รับเสรีเล็กน้อยด้วยการออกเสียงบรรทัดสุดท้าย ฉันหวังว่ามันจะไม่ผิดกฎ มันไม่ถูกต้อง 100% ต่อ W3C แต่ใช้ได้กับเบราว์เซอร์ส่วนใหญ่

<!--
less than aich tee em el greater than,
less than body not equal to span,
class equals quote poem end quote,
greater than Hello World Bang I'm a goat
close span close body close root comment pecan
-->

4
+1 สำหรับการออกเสียงอย่างชาญฉลาดอีกครั้ง ... + "บางฉันเป็นแพะ" ความคิดเห็น ...
WallyWest

5
+1 สำหรับการอ่าน><ว่า "ไม่เท่ากัน"
John Dvorak

3
มือใหม่บทกวีที่เขาเขียน - หวังว่าจะได้รับเพียงหนึ่งเสียง - และตอนนี้ในการแข่งขันนี้ / เขาอยู่ในสถานที่ที่สอง! / กับตัวแทนมากที่สุดเท่าที่เป็นเวลาหลายปีใน StackOverflow-ta
cobaltduck

26

จาวาสคริ

ฉันรู้ว่านี่ไม่ใช่กฎ แต่ฉันก็อดไม่ได้

var girl, attractive = true;    // There once was a beautiful girl
var boy; girl = ' World';       // And a boy who thought she was his world
boy = 'Hello' + girl;           // When the boy said hello
if (boy != attractive)          // She said 'my goodness no!'
    alert(window['boy']);       // And the boy through the window she hurled.

4
ความคิดสร้างสรรค์และความคิดสร้างสรรค์
Damon Swayn

3
ไม่จำเป็นต้องเปลี่ยนสาวในบรรทัดที่สอง แต่ฉันยังคงรักมัน
howderek

23

หลาม

a = [
'hello world']
print ''.\
join(a##
)

หรือ,

a equals open square bracket
quote hello world quote close square bracket
print quote quote dot backslash
join paren a hash hash
and finally close unmatched bracket

ฉันสมัครใจกฎเพิ่มเติมเพราะฉันคิดว่า (1) โคลงที่ควรจะมีเครื่องวัดที่ดีและ (2) ที่ดีที่สุดมีเซอร์ไพรส์ในบรรทัดสุดท้าย

(ด้วยการสิ้นสุดการตีความในภาษาอังกฤษแบบธรรมดาฉันคิดว่าคุณสามารถทำงานด้วยตัวคุณเองชนิดของวงเล็บไม่ตรงกันสำหรับความต้องการไม่มีรหัสตายไม่มีสิ่งใดในนั้นสามารถลบออกได้โดยไม่ต้องเปลี่ยนอย่างน้อยหนึ่งสัมผัสจังหวะหรือเอาท์พุท )


หนึ่งอาจลบแฮโดยไม่ต้องเปลี่ยนฟังก์ชั่นหรือสัมผัส มันไม่เปลี่ยนจังหวะในขณะที่คุณรัฐ แต่เงื่อนไขคำถามที่มีความชัดเจนมากที่นี่ผมคิดว่า
Keba

1
เนื่องจากธรรมชาติของกวีนิพนธ์คือการทำให้งอกฎฉันสามารถอยู่กับมัน ที่บอกว่ามันไม่ชัดเจนสำหรับฉันว่าเครื่องวัดไม่ได้เป็นส่วนหนึ่งของแนวคิดเรื่องการสัมผัสของ OP
แทรกบ๊อบ

3
Meh บทกวี "วงเล็บ" กับตัวเองสามครั้งเป็นเพียงการโคลงแบบขี้เกียจ
MikeTheLiar

ใช่ฉันรู้สึกไม่ดีเกี่ยวกับเรื่องนั้น แต่มันเป็นสัญลักษณ์ที่แตกต่างกันสำหรับแต่ละสัมผัสตามที่ร้องขอโดย OP
แทรกบ๊อบ

14

Haskell

เสรีภาพบางอย่างเกี่ยวกับการออกเสียงของสัญลักษณ์บางอย่างเช่น Tuple ก่อสร้างและการประยุกต์ใช้ฟังก์ชั่น(,,) ($)

main = something that we wrote
     where something x y z = bloat
           bloat = flip ($) m putStrLn
           (that,we,wrote) = undefined
           m = "hello world"

การอ่านควรจะเป็น:

main is something that we wrote
where something x y z is bloat
bloat is flip apply m putStrLine
Tuple that we wrote is undefined
misquote hello world quote.

12

JavaScript

if (!!1) // and
  alert('&#10084; &#10084; the world') // and
Burn = $.cache
return 1 > his_parts.the_sum

หากอยู่ในวงเล็บอย่างใดอย่างหนึ่งดังต่อไปนี้เครื่องหมายอุทาน

และแจ้งเตือนโลกภายในวงเล็บเหลี่ยมหลังจากเอนทิตี้ของหัวใจ

เฉือนทับและเผา

เท่ากับเงินสดเงินสดผลตอบแทน

หนึ่งมากกว่าผลรวมของชิ้นส่วนของเขา


3
ฉันไม่คิดว่าฉันรู้จักใครที่ออกเสียง "$" เป็น "เงินสด" แม้ว่าฉันจะยอมรับว่าไม่ได้เขียน JavaScript
Carl Witthoft

1
+1 ฉันชอบการถอดความที่ไม่ใช่ตัวอักษรและ "เอนทิตี้หัวใจ" เป็นเรื่องที่ตลกดีแม้จะมีเสรีภาพในการขึ้นบรรทัดใหม่
Jason C

8

ขั้นพื้นฐาน

โดยเฉพาะอย่างยิ่งกระแตพื้นฐาน กฎไวยากรณ์ได้รับการยืดออกจนเกือบถึงจุดแตกหักดังนั้นจึงอาจเป็นไปไม่ได้ที่จะเรียกใช้สิ่งนี้ในภาษาถิ่นอื่นโดยไม่มีการดัดแปลง

ที่มา:

read hi$, u$, q
print hi$ " world how are you
  print "Or as they say
  print u$ q "day
data Hello, How R U, 2

รุ่น "อ่านออกเสียง":

read hi string comma u string comma q
print hi string quote world how are you
  print quote Or as they say
  print u string q quote day
data Hello comma How R U comma 2

หมายเหตุ:

  • ไม่มีหมายเลขบรรทัดในซอร์สโค้ด แต่จะยังคงโหลดและรันโดยไม่มีปัญหา (ดูด้านล่าง)
  • $เครื่องหมายถูกอ่านเป็น"สตริง"ในบริบทของโปรแกรมขั้นพื้นฐาน (ดูเช่นหน้าวิกิพีเดีย )

และนี่คือหลักฐานว่ามันใช้งานได้จริง:

screen grab of program running in Mac OS X


คุณสร้าง gif นี้ได้อย่างไร
Kartik

@Kartik ฉันใช้แอพชื่อIShowU
ossifrage

6

ทุบตี

เนื่องจากคำตอบนั้นถูกบังคับให้มีวลี "Hello World" เท่านั้นทางออกที่ง่ายที่สุดควรเป็น:

echo A rhyming program you write
echo Attempting to win the fight
echo For winning the contest and vote
echo It must compute "Hello World"
echo Then print it very polite

8
ถูกกฎหมายภายในกติกา แต่คำตอบนี้คือ ไม่สนุกในงานปาร์ตี้ meta.codegolf.stackexchange.com/a/1063/3363
Jonathan Van Matre

1
@JonathanVanMatre นั่นเป็นสัญญาณว่าปัญหาเป็นปัญหา สิ่งใดที่แตกต่างไปจากการพิมพ์ผลลัพธ์โดยตรงจะเกินความจริง นอกจากนี้กฎ "แยก" ตัวแรกยังยับยั้งสิ่งที่สร้างสรรค์มากยิ่งขึ้นแม้แต่ชื่อตัวแปรที่มีอักขระและตัวระบุรหัสมากกว่าหนึ่งตัวมันเป็นรหัสที่ตีกอล์ฟว่าได้รับการประเมินว่าเป็นการประกวดความนิยม
Victor Stafusa

4
@Timtech: โหวตและอ้างอิง
Keba

2
คุณพิจารณาปรับปรุงคำถามหรือไม่ / นั่นอาจทำให้ความประทับใจดีขึ้น / ถึงแม้ว่าความเสียหายจะเสร็จสิ้น / มันจะไม่สนุกมากขึ้น / เพื่อทำขนมโคลงกลอนที่เข้ารหัสจริงๆ? :)
Jonathan Van Matre

1
@Victor "อักขระที่สามารถลบออกได้อย่างปลอดภัย" ดูเหมือนจะบอกเป็นนัยว่าคุณไม่สามารถใช้ชื่อตัวแปรหลายตัวละครได้ยกเว้นว่าเป็นส่วนหนึ่งของสัมผัส นั่นเป็นปัญหา
Jonathan Van Matre

6

ชวา

public static void main(String[] boat
){ int i = 1.0f
  ;if(i<2
  )System.out.println
("Hello world");} //hello world wrote


public static void main paren String arr boat
paren brace int i is one-point-oh float
sem-col if paren i is less than two
paren system dot out dot print line new //for some reason it's println, not printnl
paren quote hello world quote paren sem-col brace slash-slash hello world wrote

โปรดทราบว่าความคิดเห็นไม่ได้เป็นตัวเลือกจริงๆใน Java


bใน "เรือ" ความต้องการที่จะลบออก ( "ข้าวโอ๊ต' เป็นชื่อตัวแปรที่ถูกต้องและพอดี)
pppery

6

ทับทิม

comma = ""<<44
print "Hello" or
more = ""<<32
print comma if true
puts("World!") unless print more

มีชีวิต: https://ideone.com/sirBBc

ออกเสียงดังนี้ (มีพยางค์เน้นเสียงเป็นตัวพิมพ์ใหญ่)

comma Equals quote-QUOTE cons four-FOUR
print QUOTE hello END quote OR
more equals QUOTE quote cons three-TWO  # ok, that was squished
print COMma if TRUE
puts QUOTE world QUOTE UNless print MORE

mและeทั้งในกรณีของmoreความต้องการที่จะลบออก ( oreเป็นคำที่ถูกต้องในตำแหน่งที่มากเกินไป)
pppery

อืมผมไม่คิดว่าผมถูกต้องตามกฎหมายสามารถสัมผัสorกับทั้งหรือor ore
ฮิสโทแกต

นี่จะไม่ใช่ตัวอย่างเดียวของโคลงที่มีคำซ้ำกัน
pppery

4

Haskell

main = print . repeat
  $ head $ lines . init
     $ "Hello \
       \World!" #
         Just where (#) = const . id

หลักเท่ากับหยุดพิมพ์ซ้ำหยุด
หัวดอลลาร์ดอลลาร์สายเต็มของ innit?
Dollar quote hello back slash
Back slashworld bang ราคาแฮช
เพียงแค่ที่แฮช parenthised เท่ากับ constful หยุดมัน!

สิ่งนี้อธิบายว่าหวังว่าพฤติกรรมที่แท้จริงของโปรแกรมจะค่อนข้างดี


2

เท็กซ์

ฉันขอโทษล่วงหน้าเพราะรหัสนี้ไม่นับว่าเป็นลิเมอริกถ้าคุณออกเสียงชื่อของสัญลักษณ์แต่ละตัว (โดยเฉพาะถ้าคุณปฏิบัติต่อตัวอักษรแต่ละตัวเป็นโทเค็นซึ่งบางทีคุณควรจะทำ) ฉันเขียนมันด้วยวิธีนี้เพื่อให้ได้ผลลัพธ์ที่ดีที่สุดเท่าที่จะเป็นไปได้

คุณได้อย่างปลอดภัยสามารถทำให้มันกลายเป็นคำตอบที่สอดคล้องกับกฎระเบียบโดยการกำจัดของ\itคนและทุกคนที่ไม่ใช่ตัวอักษรอักขระที่ไม่ใช่ช่องว่างยกเว้นสุดท้าย\bye(อ่านออกเสียงเป็นลาทับขวา ) และอาจจะเป็นครั้งแรก!(อ่านออกเสียงเป็นปัง )

A \TeX\ program I think would comply,

And I'll tell you the reason for why:

``Hello world!'' tells the setter:

{\it ``Print each subsequent letter!''}

And we terminate with \bye.

You should remove comas and symbols at the end of each verse to let them rhyme properly. Or put them in the line afterwards.
Mikaël Mayer

@MikaëlMayer: see the remark in my second paragraph.
Niel de Beaudrap

2

Brainf*ck

โอเคตอนนี้ฉันโกงสำหรับการละเมิดกฎจำนวนมาก แต่ฉันไม่สามารถช่วยได้

++++++++[>+++++++++<-
]>.---.$#
+++++++..+
++.++++++++
.--------.+++.------.--------.

และผลลัพธ์ (การละเมิดครั้งแรกของหลายคน: ไม่มีที่ว่าง):

HELLOWORLD

ลองที่นี่: http://www.iamcal.com/misc/bf_debug/

การอ่านของมัน:

Eight plus left more nine plus less dash
Right more dot three dash dot cash hash
Sevén plus dot dot plus
Plus plus dot eight plus
Dot eight dash dot three plus dot six dash dot eight dash.
  • โปรดทราบว่าจุดสุดท้ายในโปรแกรมจะถูกวางเป็นระยะเวลาในตอนท้ายของโคลง :): [การละเมิดครั้งที่สอง; มันราคาถูก] นอกจากนี้ล่าม$และ#ถูกเพิกเฉย (ฉันภูมิใจในตัวเองมากสำหรับบทนี้)

  • การเน้นSevénคือการแสดงความเครียด: seh-VEN

  • สิ่งนี้ละเมิดกฎการใช้สัญลักษณ์ที่แตกต่างกัน แต่จริงๆแล้วฉันมีชุดสัญลักษณ์ที่ จำกัด มากและไม่มีที่ว่างสำหรับเพิ่มตัวอักษร (ละเว้น) อื่น ๆ

  • ฉันใช้ตัวพิมพ์ใหญ่ทั้งหมดเพราะสิ่งเหล่านั้นเข้าถึงได้เร็วกว่าใน ASCII ฉันไม่มีที่ว่างสำหรับพื้นที่น่าเสียดาย

ในที่สุด: ใช่ฉันรู้ว่าบรรทัดสุดท้ายนั้นแย่มาก ข้อเสนอแนะเพื่อปรับปรุงมันได้หรือไม่ ฉันไม่แน่ใจว่าคุณจะบีบอัดโปรแกรมนี้อีกต่อไปหรือไม่ อาจจะโดยการเก็บจดหมายซ้ำ ๆ ในตำแหน่งของตัวเอง?


เพิ่งรู้ว่าในขณะที่สิ่งนี้จะทำให้รหัสยาวขึ้นการยกเลิกการวนลูปเริ่มต้นเป็น 72 +จะเป็นการประหยัดพื้นที่ในการโคลง แต่ฉันจะรักษาคำตอบไว้เหมือนเดิม
baum

2

C #

ฉันใช้เสรีภาพเล็กน้อยกับกฎเพราะสัทอักษร C ที่เกี่ยวกับการออกเสียงจะเกี่ยวข้องกับการใช้ "เซมิโคลอน" มากเกินไปซึ่งอย่างที่เราทุกคนรู้กันดี

{
     string unfurled = "Hello World!";
     Console.WriteLine(unfurled);
}

เปิดรั้งสตริงที่เรียกว่า unfurled

สร้างขึ้นเพื่ออ่าน "สวัสดีโลก"

บรรทัดการเขียนคอนโซล

the string we defined

a final brace, one that is curled


You can always put semi-colon at the beginning of a newline, no?
Mikaël Mayer

True, Mikael, but it makes the code look very untidy!
BrummiePete

1
Between untidy and rhyming, here the point is about rhyming. Don't worry, this code is not peer-reviewed.
Mikaël Mayer

1

Java

class Hello {public static void main
(String[] args)
{yellow = System; yellow
.out.print("Hello
world");} }

class Hello brace public static void main
paren string bracket bracket args paren
 brace yellow equals system sem-col yellow
 dot out dot print paren quote hello
world quote paren sem-col brace and brace again

1
This doesn't compile. How is yellow declared?
ζ--

1

Batch

@echo off >dull
set /p "=Hello "<nul
set w=World
echo %w%! || Furled
del dull || cull

at echo off to dull
set slash p quote equal Hello quote from nul
set w equal World
echo percent w percent bang pipe pipe Furled
del dull pipe pipe cull


Can you find another rhyme dull/dull ?
Mikaël Mayer

@MikaëlMayer it's more useless code, but yes.
unclemeat

1

CSS

title>me
,body lets go party
only a stylesheet,html
:after { content: 'hello world'; font-family:Rockwell
; color: #adad20

Outputs:

title greater than me

comma body lets go party

only a stylesheet comma html

colon after bracket content colon quote hello world quote semicolon font-family colon Rockwell

semicolon color colon hashtag a dad twenty

Tested in Firefox and Chrome


1
#include <stdio.h> //
void main (void){
printf("Hello, World");
//just for rhyme I say stolon
} /**/

hash include less than stdio dot h greater than double slash after a space

void main left paren void right paren left brace

printf left paren quote Hello comma World quote right paren semi colon

double slash just for rhyme I say stolon

right brace and double asterisk between slashes at the last place


Nice one for the first two rhymes, but you use twice the same symbol to rhyme (semi-colon), which is not allowed.
Mikaël Mayer

Debugged, but I guess another bug appeared.
Nayuta Ito

0

Windows Batch

The spoken words are also saved within the batch file, and skipped with the last line of actual code.

@echo off >nul
set hi=Hello World
rem Now print the string,
echo !hi!
goto :) to skip the words

at echo off, greater than nul,
set H I equals sign, Hello World,
rem Now print the string,
echo pling, H I, pling
goto smile, to skip the words

:)

Edit: You'll need delayed expansion enabled for the script to work. Use cmd /v:on and run it from there.


1
nul, world, and words do not rhyme. The pattern needs to be AABBA. Also the comma after string should be pronounced.
unclemeat

0

print 'the letter keys on my keyboard'
print 'are sufficient to say Hello World
print 'when I type in the dark'
print 'sitting here in the park'
print'feeling horribly,horribly bored'


Note the rules: symbols such as ' are read aloud and count as part of the rhyming scheme. Welcome to PPCG!
Jonathan Van Matre

So technically it works. It doesn't say A cannot be B.
CompuChip

0

Python (3)

print('''Nose
No punctuation hear close
Hello World
Hurled and swerled
Goodbye now''')

Print open quote quote quote nose, No punctuation hear close, Hello World, Hurled and swerled, Goodbye now quote quote quote close.


Welcome to the site, and nice first post!
caird coinheringaahing
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.