sestinaเป็นรูปแบบของบทกวีที่เป็นไปตามรูปแบบที่น่าสนใจที่เราสามารถสร้าง มันมีหกบทหกบรรทัดแต่ละบรรทัดซึ่งคำสุดท้ายของแต่ละบรรทัดในบทแรกจะประกอบเป็นจุดสิ้นสุดบรรทัดในแต่ละบทต่อเนื่องซึ่งหมุนในรูปแบบชุด (นอกจากนี้ยังมีบทสามบรรทัดในตอนท้าย แต่เราไม่ต้องกังวลเกี่ยวกับเรื่องนี้) ดูบทสามบทแรกของ Elizabeth Bishop ที่ชื่อSestinaอย่างสร้างสรรค์:
ฝนกันยายนตกบนบ้าน
ในความล้มเหลวของแสงยายเก่า
นั่งอยู่ในครัวพร้อมกับเด็ก
ข้างเตามหัศจรรย์น้อย
อ่านเรื่องตลกจากปูมการ
หัวเราะและพูดคุยเพื่อซ่อนน้ำตาของเธอเธอคิดว่าน้ำตา
ที่เกี่ยวกับการนอนหลับของเธอและสายฝนที่เต้นอยู่บนหลังคาของบ้าน
นั้นถูกปูมไว้ด้วยปูมทั้งสอง
ข้าง
กาต้มน้ำเหล็กร้องเพลงบนเตา
เธอตัดขนมปังและพูดกับเด็กว่าได้เวลาดื่มชาแล้ว แต่เด็ก
กำลังดูน้ำตาเล็ก ๆ ของกาน้ำชา
เต้นอย่างบ้าคลั่งบนเตาร้อนสีดำ
วิธีที่ฝนจะต้องเต้นบนบ้าน
เมื่อคุณยายแก่ชรานอน
อยู่บนปูมอันชาญฉลาด...
โปรดสังเกตว่าแต่ละบรรทัดลงท้ายด้วยคำใดคำหนึ่งในหกคำว่า "บ้าน" "ยาย" "เด็ก" "เตา" "ปูมปูม" หรือ "น้ำตา" ไม่เพียงแค่นั้น แต่มีการจัดเรียงคำในรูปแบบ 6–1–5–2–4–3 เทียบกับบทก่อนหน้า มันดูเหมือนเป็นเกลียว:
เรายังห่างจากการสร้างเซสทิน่าเต็มรูปแบบโดยทางโปรแกรม แต่เราสามารถสร้างเทมเพลตที่มีคำพูดสุดท้ายของแต่ละบทในลำดับที่เหมาะสม เขียนโปรแกรมหรือฟังก์ชั่นที่ให้คำลงท้ายด้วยคำหกบรรทัดออกผลลัพธ์พิมพ์เขียวสำหรับ sestina โดยปฏิบัติตามกฎเหล่านี้ นี่คือผลลัพธ์ที่คาดไว้สำหรับอินพุตhouse grandmother child stove almanac tears
:
house
grandmother
child
stove
almanac
tears
tears
house
almanac
grandmother
stove
child
child
tears
stove
house
grandmother
almanac
almanac
child
grandmother
tears
house
stove
stove
almanac
house
child
tears
grandmother
grandmother
stove
tears
almanac
child
house
stanza แรกคือคำตามลำดับต้นฉบับ stanza ที่สองอยู่ในลำดับที่ 6-1-5-2-4-4-3 จากคำสั่งแรก บทที่สามคือลำดับที่สัมพันธ์กับอันดับที่สองเป็นต้นไปจนถึงบทที่ 6
สมมติว่าคำที่ป้อนจะเป็นตัวอักษรตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็กเสมอ คุณสามารถใช้มันเป็นอาร์เรย์ของสตริงหรือสตริงเดียวที่คั่นด้วยอักขระที่ไม่ใช่ตัวอักษร (เว้นวรรคบรรทัดใหม่ ฯลฯ ) ในเอาต์พุตบรรทัดจะถูกคั่นด้วยบรรทัดใหม่ ( 0x0A
) และ stanzas คั่นด้วยบรรทัดใหม่สองบรรทัด บรรทัดใหม่ต่อท้ายเป็นที่ยอมรับ
นี่คือcode-golfดังนั้นรหัสที่สั้นที่สุดในหน่วยไบต์ชนะ ที่ถูกกล่าวว่ามันอาจจะสั้นกว่าในการบีบอัดโครงสร้างของบทกวีทั้งหมด แต่ฉันต้องการที่จะเห็นวิธีการแก้ปัญหาบางอย่างที่ฐานแต่ละบทก่อนหน้านี้
natural-language
แท็ก อัลกอริทึมจะเหมือนกันแม้ว่าอินพุตเป็นหกสายของการพูดพล่อยๆ