2019-02-04: BonとCleanでQuineを書いた
やったこと
ミリシタ
メダルガシャでSSRを引いた。本当に引けるのか‥‥。
持ってない矢吹可奈のSSRだった。ラッキー。
あと限定茜に抗えずガシャを回してしまった。幸い40連くらいで引けたのでえらい。
あと、早坂そらさんの予告セリフが普段と違ったけど、限定だといつもこうなのだろうか?
あーもうこの茜ちゃんかわいすぎる。
あと関係ないけどカレーメシを食べた。オタクはちょろい。
マギレコ
バレンタインイベントが始まったのでやっている。
アイテムが落ちる量少ない気がする。一回で20しか落ちないのでしんどい‥‥。
Quineを書いた
https://github.com/MakeNowJust/quine/commit/d9f9304d7ce6188852dbe34d69cbc6ea74602c1f
https://github.com/MakeNowJust/quine/commit/7840c52e7a520fe15d57d07b6c05d5f7577013cd
Bonというプログラミング言語がある。多分LLVMの勉強がてら作った言語。メモリ管理とか何も無いしまだ使えるものではない。でも何となくQuineを書いた。ゴミみたいなQuineになったのはダブルクオートをバックスラッシュでエスケープできなかったから。C言語の関数が呼び出せて良かった。--asm
オプションがあると便利だね。
あとREADMEのベンチマークでRubyとかと比較して早いみたいなのを見せてるけど、RubyとかPythonは多倍長整数だしあんまし良くないよなぁ、といつも思う。
Cleanは一意型を持った関数型言語として結構有名な気がするけれど、なぜか書いていなかった。なんか高校生の頃に書いた記憶があったのだけど、どうやら気のせいらしい。‥‥いや、絶対書いたはず。文法覚えてたし。でもリポジトリに無いということは紛失したのだと思う。なぜだ。
一意型は面白いのだけど、こういう使い方をしてるとIO
モナドのRealWorld
を見えるようにしただけじゃない、という感がある。メモリ管理とかで面白くなるはずなんだけど、関数型言語がベースな時点でそれが分かりづらいよなぁ。
Bonの方は単純にビルドして実行すれば動くと思う。ビルドにLLVM 4とzlibがいるので注意。
CleanはDownload CleanからmacOS用のclean3.0.zip
を落として展開して、 make
を実行してから clm -nt -nr quine -o quine
とかでビルドして./quine
を実行すればいいはず。
Futharkという言語も試してみて、かなり面白いと思ったのだけど任意の文字列を出力する方法が存在しなかったのでQuineを書くのを諦めた。Quineを書くのには向かないけれど、こういうドメインに特化した言語は嫌いじゃない。