JavaScript, 62 61 37 bayt
Yardımınız için @ Doᴡɴɢᴏᴀᴛ'a teşekkürler!
Orijinal [37 bayt]:
f=_=>'f='+'_'.repeat((10+f).length)+f
Çocuk [74 bayt]:
f=______________________________________=>'f='+'_'.repeat((10+f).length)+f
Torun [148 bayt]:
f=________________________________________________________________________________________________________________=>'f='+'_'.repeat((10+f).length)+f
Alternatif (konsola yazdırma ve tam program olarak):
Orijinal [61 bayt]:
f=_=>console.log(`f=${'_'.repeat((0+f).length+5)+f};f()`);f()
Çocuk [122 bayt]:
f=______________________________________________________________=>console.log(`f=${'_'.repeat((0+f).length+5)+f};f()`);f()
Torun [244 bayt]:
f=________________________________________________________________________________________________________________________________________________________________________________________=>console.log(`f=${'_'.repeat((0+f).length+5)+f};f()`);f()
Nasıl çalışır!
1. f=_=> f işlevini tanımlayınconsole.log(...)
2. ;f() f işlevini çalıştırın.
3. (f işlevinde)
notlar
console.logbunun yerine gereklidir, alertçünkü alertgerçekten uzun dizelerle iyi oynamıyor gibi görünüyor (en azından benim makine / tarayıcı yapılandırmamda)
_Var da f stringification dahil olmasını sağlamak için, fonksiyon f (kullanılmayan) parametrenin adı sokulur.
- İkinciden
console.logilk çözümün ( kurtulmaktan başka ) kurtulması dışında : dizeye dökmek 10yerine işleve eklenmesi 0onu bir bayt daha uzun yapar, sonradan uzunluğa 1 ekleme ihtiyacını ortadan kaldırarak bir bayt tasarrufu sağlar.