ในการท้าทายนี้คุณต้องเขียนโปรแกรมหรือฟังก์ชั่นซึ่งใช้สตริงเป็นอินพุตและเอาต์พุตหนึ่งในสองค่าที่เป็นไปได้ เราจะเรียกค่าใดค่าหนึ่งtruthyและเป็นหนึ่งในfalsy พวกเขาไม่จำเป็นต้องจริงจะtruthyหรือfalsy เพื่อให้คำตอบที่ถูกต้องนั้นจะต้องเป็นไปตามเกณฑ์เพิ่มเติมสี่ประการ
เมื่อคุณผ่านโปรแกรมของคุณกับตัวเองว่ามันจะออกผลลัพธ์เป็นtruthyค่า
หากคุณส่งโปรแกรมของคุณเป็นอินพุตไปยังคำตอบที่เก่ากว่าก็ควรเอาท์พุทผลลัพธ์จริง (ของโปรแกรมที่คุณกำลังจะส่ง)
หากคุณส่งคำตอบที่เก่ากว่าให้กับคำตอบของคุณในฐานะที่เป็นอินพุทก็ควรจะส่งออกผลลัพธ์ที่ผิดพลาด (ของโปรแกรมของคุณ)
ต้องมีจำนวนอนันต์ของสตริงที่ประเมินtruthyการส่งออกในทุกคำตอบกับความท้าทาย (รวมถึงคำตอบใหม่ของคุณ)
สิ่งนี้จะทำคือมันจะสร้างสายโซ่ของคำตอบซึ่งแต่ละโปรแกรมสามารถตรวจสอบว่าโปรแกรมอื่น ๆ ในกลุ่มมาก่อนหรือหลังจากนั้น
เป้าหมายของความท้าทายนี้คือการสร้างรายการข้อ จำกัด ของแหล่งที่มาซึ่งนำไปใช้กับคำตอบที่ต่อเนื่องทำให้แต่ละคนมีความท้าทายมากกว่าครั้งสุดท้าย
ตัวอย่าง
โซ่ (เขียนใน Haskell) สามารถเริ่มต้น:
f _ = True
True
เนื่องจากไม่มีโปรแกรมที่มีอายุมากกว่าเกณฑ์ที่ใช้ไม่ได้กับคำตอบนี้ต้องส่งออกเพียงหนึ่งของค่าที่เป็นไปได้ทั้งสองในกรณีนี้ก็มักจะเอาท์พุท
การทำเช่นนี้อาจเป็นคำตอบ:
f x=or$zipWith(==)x$tail x
ซึ่งอ้างว่ามีอักขระสองครั้งในแถวแถวหนึ่งในสตริง คำตอบแรกไม่มีคุณสมบัตินี้ในขณะที่สองไม่ ( ==
) ดังนั้นนี่คือคำตอบถัดไปที่ถูกต้อง
กฎพิเศษ
คุณสามารถใช้ภาษาใดก็ได้ที่คุณต้องการ (ซึ่งมีการนำไปใช้อย่างอิสระ) หลาย ๆ ครั้งตามที่คุณต้องการ
หากคุณเป็นคนสุดท้ายที่ตอบคำถามคุณต้องรออย่างน้อย 7 วันก่อนโพสต์คำตอบใหม่
โปรแกรมของคุณอาจไม่อ่านซอร์สของมันเอง
เนื่องจากกฎข้อที่ 4 นั้นยากเกินกว่าจะตรวจสอบได้ว่ามีฟังก์ชั่นการเข้ารหัสที่เกี่ยวข้องหรือไม่จึงไม่อนุญาตให้ใช้ฟังก์ชั่นดังกล่าว
เกณฑ์การให้คะแนน
ทุกครั้งที่คุณเพิ่มคำตอบคุณจะได้รับคะแนนมากที่สุดเท่าที่เป็นไปได้ในห่วงโซ่ ตัวอย่างเช่นคำตอบที่ 5 จะได้รับเป็นนักเขียน 5 คะแนน เป้าหมายคือการได้รับคะแนนมากที่สุดเท่าที่จะทำได้ คำตอบสุดท้ายจะทำคะแนนผู้ตอบคำถาม-∞คะแนน นี่อาจจะสนุกกว่านี้ถ้าคุณพยายามเพิ่มคะแนนของคุณเองมากกว่า "เอาชนะ" การท้าทาย ฉันจะไม่รับคำตอบ
เนื่องจากนี่เป็นคำตอบการเชื่อมโยงคุณอาจต้องการเรียงลำดับที่เก่าที่สุด