コラッツ予想がとけたらいいな2

自分の考察を書いていきます。

EgisonでQuine

クワインとは、ソースコードと同じ文字列を出力するプログラムのことです。

3年前のこの記事のやりかたには欠陥があって、

s="...s=?...s.replace("?", s)..." ...s.replace("?", s)...

だと?が2箇所あるので、その2箇所にsが埋め込まれてしまいます。
なので、置換文字列には、2通りの表現方法があるものを使う必要があります。
前回のようにASCIIコード(itoc)を使っても良いですが、
今回はアルファベットの大文字小文字を使います。
「Z」を置換文字列にします。
.
.

実行結果
C:\me\Egison\quine>type quine.egi
(define $main (lambda [$args] (let {[$s "(define $main (lambda [$args] (let {[$s Z]} (print (S.replace (pack {(upper-case c#z)}) (show s) s)))))"]} (print (S.replace (pack {(upper-case c#z)}) (show s) s)))))
C:\me\Egison\quine>egison quine.egi
(define $main (lambda [$args] (let {[$s "(define $main (lambda [$args] (let {[$s Z]} (print (S.replace (pack {(upper-case c#z)}) (show s) s)))))"]} (print (S.replace (pack {(upper-case c#z)}) (show s) s)))))

.
.

Quine Museum

GitHubにQuine Museumというのがあって(こんなのがあるのですね)、そこにEgisonの、僕と違うやつもある。
.
.