Bu benim için bir takip sorudur Puzzling.SE soru : bir işlev var mı diye sordum f böylece Boole dizelerine Boole dizeleri haritalama f (f (b)) = (b) ters tüm girişindeki dizeleri için b . ( Tersine , bitlerin sırasını tersine çeviren işlevi kastediyorum.)
Yukarıdaki bağlantı büyük f tarafından kanıtla olumlu bir cevap içeriyor '' , ancak bakmadan önce soruyu kendiniz düşünmek isteyebilirsiniz.
Böyle bir f işlevini olabildiğince az bayt olarak uygulayın.
STDIN'den girişi okuyabilir veya bir işlev argümanı alabilirsiniz; ve sonuç dizesini STDOUT'a yazın veya döndürün.
Her iki şekilde de, seçtiğiniz iki ayrı bayt veya karakter gerçek dizeleri (söylemek birlikte çalışabilir
0ve1ya\x00ve\x01) ya da dizilerle / listeleri truthy ve falsy değerler . İki değer seçin ve bunlara sadık kalın.Tek bir uygulamanın sonucu f gerekir ikili dize kendisi olmak: hayır saçma cevaplar gibi
b -> if b starts with 'x' then reverse(b[1:]) else 'x' + b...İşleviniz toplam olmalıdır ; özellikle, girdi boş dize veya bir bit uzunluğunda, vb. olabilir. Dizenin uzunluğu için üst sınır yoktur.
Ayrıca saf olmalıdır : işlev çağrıları arasında herhangi bir küresel durum bulundurmayın; giriş dizesi, çıkış dizesini tamamen belirlemelidir.