2024-12-20: DAY 20 - YSH (Quine AC 2024)
DAY 20
YSHという言語があります。
現代版シェルスクリプトの1つです。
外部コマンドの呼び出しと、内部の関数の呼び出しだったり文字列以外の値の扱いが同時に現れると、かなり利用側への認知負荷が高く感じます。
あと内部にいくつも小さな言語を持っていてよく分からない。
かつてOilと呼ばれていたものだったり、色々と情報が錯綜していて追うのが厳しいです。
なんか encodeBytes
などが実装されていなかったので、Quineは適当に文字列の置換で書きました。
もうちょいよくできそうな気もします。
const s = '''const s = %s
const q = "'"
echo ${s//%[s]/$q$q$q$s$q$q$q}'''
const q = "'"
echo ${s//%[s]/$q$q$q$s$q$q$q}
実行は ysh
コマンドで。
$ ysh quine.ysh | diff quine.ysh -