2021-02-16: V for ...
やったこと
可算
関数の等価性を確認する方法として、遅延評価を上手く使うやつがあるので実装してみた。
ちなみに実装では関数でなく LazyList になってる。これは普通に手抜き。
https://gist.github.com/MakeNowJust/5d8d183dd16ce7dbf50516108be906c6
元ネタはこれ。
最後の方の最適化はよく分かっていない。
http://math.andrej.com/2007/09/28/seemingly-impossible-functional-programs/
あとcommlogも書いた。
最近結構commlogを更新しているので暇な人は見てやってほしい。
https://commlog.quine.codes/commit/afb4850c049abbde876e1110dfc6133813cab5c5
トポロジー関連の考察はこのスライドを見たら分かりやすかった。
一様連続な関数なら等価性が判定できるのか。なるほど。
https://www.cs.bham.ac.uk/~mhe/.talks/popl2012/escardo-popl2012.pdf
プリコネ
回したら出た。
無欲ガチャはつよい。
れいれいがんばってる。
https://twitter.com/make_now_just/status/1361603488652746756
Quine
MakeNowJust/quineのRubyのコミットメッセージだけ統一できてなくて気になったので修正した。
修正内容としてはグローバル変数を使うようにしただけ。なんか昔こう書いたような気もするので、むしろどうして今の形になっているのか謎。
一応1バイト短かくなってる。
https://github.com/MakeNowJust/quine/blob/1d4cc686b663f3d793f913bad4379b72df694142/quine.rb
あと、なぜかoctocat-quineに動かないというissueが立ったのだけど、普通に動くので動くよって言っておいた。
多分2FAの都合でパスワードの代わりにパーソナルアクセストークンを入れないといけないんじゃないかな、と推測。
というかAPI変わってないもんだなぁ。
https://github.com/MakeNowJust/octocat-quine/issues/1
ついでにREADMEとかも整備しておいた。
V
Vという言語がある。
誇大広告で有名なので知っている人も多い気がする。
なんかリリースされたタイミングでQuine書こうと思ったけど、変更がありそうで見送ってたやつ。
今のところ特筆するほど面白くもないというか、別にこれならGoでいいよなってなってしまう。
一応Goよりも速いとは思うけど、エコシステムが桁違いだし。
というわけでQuineを書いた。
なんかprintlnに配列が渡せたから渡したけど、どういう原理で可能なのかそこまで分かっていない。
https://github.com/MakeNowJust/quine/blob/6e1907d7b23a4ce45853ce8346f60ebd325ca894/quine.vlang.v