Belirli bir zaman, bu bir program veya fonksiyon yazmalısınız nonempty dize S arasında N yazdırılabilir ASCII karakterleri † , çıkış kodu ile çıkılacak bir program çıkışı C , C de 0 konumunda ASCII kod noktası olan S . Yazdığınız bu program ek olarak bir P programı çıkarır , böylece çalıştırıldığında C ′ çıkış kodundan çıkar , burada C S S konumunda 1 konumundaki ASCII kod noktasıdır . Program P irade çıkışı başka bir program P ' . Bu işlem S'de karakter kalmayıncaya kadar tekrarlanır. Bu yapıldıktan sonra, hiçbir şey çıkarmamalısınız, bunu isteğe bağlı bir satırsonu izlemelidir; ve çıkış kodu 0 ile çıkmalıdır.
† Arasındaki 0x20
ve 0x7e
kapsayıcı karakterler .
Bazı kurallar:
- Kendini değiştiren programlara izin verilmez: kaynağı STDOUT'a vermelisiniz (veya başlangıçta değeri döndürmelisiniz)
- Kendi kaynak kodunuzu okuyamazsınız.
Bayt cinsinden bu tür en kısa program kazanacaktır.
Bazı ilkel testler için bu yakut senaryo kullanılabilir. (İlk argüman, komut dosyasını çalıştırma şekliniz, ikincisi program ve üçüncüsü de giriş dizesidir.)
Varsayımsal Örnek
Diyelim ki program FOO
. "ABC" dizesi verildiğinde çıktı alır BARA
. Bu program kod 65
ve çıkışlarla çıkar BARB
. Bu da kod 66
ve çıkışlarla çıkar BARC
. Bu program kod 67
ve çıkışlarla çıkar BAR!
. Bu hiçbir şey çıktı ve kod ile çıkar 0
.
33 throw
rastgele bir sayı atmak gibi bir şey yapabilirsiniz . İşletim sistemi düzeyi için negatifleri kullanırsınız ve uzaklık -512'dir. Çok da idk, ama buraya bakıyorum: complang.tuwien.ac.at/forth/gforth/Docs-html/…
0
Başarı. tio.run/nexus/…