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
代わりに関数に追加すると、0
1バイト長くなり、後で長さに1を追加してバイトを節約する必要がなくなります。