Bu zorluğa girerek bir dizgeyi girdi olarak alan ve iki olası değerden birini çıkaran bir program veya işlev yazmalısınız. Bu değerlerden birine hakikaten , bir sahtekarlık diyeceğiz . Gerçekte truthy veya falsy olmaları gerekmez . Cevabın geçerli olması için dört ek kritere uyması gerekir
Programın kendisine geçtiğinde, gerçeğin değerini çıkarır .
Programınızı herhangi bir eski cevaba girdi olarak iletirseniz, (çıkışını yaptığınız programın) gerçek çıktısını vermelidir .
Cevabınıza daha eski bir cevabı girdi olarak iletirseniz , sahte çıktısını (programınızın) vermelidir .
Mücadeleyle ilgili tüm cevaplarda (yeni cevabınız da dahil) truthy çıktısını değerlendiren sonsuz sayıda dizi olmalıdır .
Bunun yapacağı şey, zincirdeki diğer programların ondan önce mi yoksa sonra mı geldiğini belirleyebilecek olan yavaş yavaş bir cevap zinciri oluşturmasıdır.
Bu zorluğun amacı, her birini bir öncekinden daha zorlu yapan sıralı cevaplara uygulanan kaynak kısıtlamalarının bir listesini oluşturmaktır.
Örnek
Haskell'da yazılmış bir zincir başlayabilir:
f _ = True
Daha eski programlar olmadığından, kriterler bu cevaba uygulanmaz, sadece iki olası değerden birini çıkarması gerekir, bu durumda daima çıkarır True
.
Bundan sonra cevap olabilir:
f x=or$zipWith(==)x$tail x
Hangi dize bir yerde üst üste iki kez bir karakter olduğunu iddia eder. İkincisi ( ==
) ise ilk yanıt bu özelliğe sahip değildir . Dolayısıyla bu geçerli bir cevaptır.
Özel kurallar
İstediğiniz herhangi bir dili (serbestçe kullanılabilir bir uygulaması olan) istediğiniz kadar kullanabilirsiniz.
Cevaplayacak son kişi sizseniz, yeni bir cevap göndermeden önce en az 7 gün beklemelisiniz.
Programınız kendi kaynağını okumamış olabilir.
Dördüncü kuralın, kriptografik işlevlerin dahil olup olmadığını doğrulamak son derece zor olduğundan, bu işlevlere izin verilmez.
Puanlama kriteri
Her cevap eklediğinizde zincirdeki yeri kadar puan alacaksınız. Örneğin 5. cevap yazarın 5 puan kazanmasını sağlar. Amaç mümkün olduğunca çok puan elde etmektir. Son cevap, cevabını -∞ puanlarını alacak. Mücadeleyi "kazanmak" yerine kendi puanınızı en üst seviyeye çıkarmaya çalışırsanız, bu muhtemelen daha eğlenceli olacaktır. Bir cevap kabul etmeyeceğim.
Bu cevap zincirleme olduğundan , en eskiye göre sıralamak isteyebilirsiniz.