Meydan okuma
Göreviniz, başka bir kod parçasını çıkaran bir kod parçası yazmak. Bu kod sırayla, son kod tamsayı 1 olana kadar başka bir kod çıkarmalıdır . Zincir, ilk çıkış 1 verildiğinde sona erer .
Programlarınızdan hiçbiri herhangi bir karakteri paylaşamaz (Kurallar bölümünde bir istisna vardır).
Kazanan gönderim, en uzun zincir ile gönderim olacak. Bağlayıcı en kısa toplam kod uzunluğuna sahip olacaktır.
Kurallar:
- Hem işlevleri, programları hem de parçacıkları kullanabilirsiniz. Bir REPL ortamı olduğunu varsayabilirsiniz.
- Tüm fonksiyonlar aynı dilde yazılmalıdır.
- Sembol bağımsız dillere izin verilmez. Bu, Headsecks gibi kısmen sembol bağımsız dilleri içerir.
- Varsayılan çıkış formatlama isteğe bağlı olarak bir fonksiyonun çıkışında dikkate alınmayabilir. Bu, takip eden yeni satırları
ans =
vb. İçerir . - Boşluk karakterini yeniden kullanabilirsiniz (ASCII kod noktası 32), ancak aşağıdakilere dikkat edin:
- İşlevlerden birinde istediğiniz kadar boşluk karakteri kullanabilirsiniz, ancak diğer işlevlerde de maksimum 5 ile sınırlayabilirsiniz.
- Kod noktası 32 sizin dilinizde boşluk değilse, hiçbir karakteri tekrar kullanamazsınız.
Programların hiçbiri giriş alamaz
Zincir en az iki program uzunluğunda olmalıdır.
Örnek:
İlk kodunuz abc+cab+bac
. Bu çıktı: foofoo*123
sırayla çıktı disp(~0)
veren çıktı 1
. Bu, birleşik uzunluğu 29 olan (bağ kırıcı) 3 programlık bir zincirdir.
2^3
lazım değerlendirirsiniz hangi 1
yoksa mesela olmak zorunda lambda:2^3
, print(2^3)
vb?
1
hem program olabilir hem de programın 1
çıktısı olabilir mi ya da zincir çıktı olduğunda bitiyor mu?