JavaScript、62 61 37バイト
@Doᴡɴɢᴏᴀᴛに助けてくれてありがとう!
元の[37バイト]:
f=_=>'f='+'_'.repeat((10+f).length)+f
子[74バイト]:
f=______________________________________=>'f='+'_'.repeat((10+f).length)+f
孫[148バイト]:
f=________________________________________________________________________________________________________________=>'f='+'_'.repeat((10+f).length)+f
代替(コンソールへの印刷、および完全なプログラムとして):
元の[61バイト]:
f=_=>console.log(`f=${'_'.repeat((0+f).length+5)+f};f()`);f()
子[122バイト]:
f=______________________________________________________________=>console.log(`f=${'_'.repeat((0+f).length+5)+f};f()`);f()
孫[244バイト]:
f=________________________________________________________________________________________________________________________________________________________________________________________=>console.log(`f=${'_'.repeat((0+f).length+5)+f};f()`);f()
使い方!
1. f=_=> 関数fを次のように定義しますconsole.log(...)
2. ;f() 関数fを実行します。
3. (関数f)
ノート
console.log代わりに必要なのはalert、alert(少なくとも私のマシン/ブラウザの設定では)本当に長い文字列ではうまく再生できないようだからです
_のは、それらがFの文字列化に含まれていることを保証するために、関数f(未使用)パラメータの名前に挿入されます。
console.log最初のソリューションの2番目のソリューションの主な改善(を除く):文字列にキャストする10代わりに関数に追加すると、01バイト長くなり、後で長さに1を追加してバイトを節約する必要がなくなります。