以下のtweetしたように、最近それなりに、(主にHaskell関連の)論文読んでるのだけれど
最近、論文読むの楽しいと思うことがそれなりにあるけど、いや楽しいとかじゃなく無意識に時間があればずっと論文読み続けてるのが当たり前の状態にならないとだめだ。って自身に言い聞かせようとし出すような変な意識の高まり方してる
一回読んだだけではすべてを理解できるわけでもないし、「うまく日本語に要約して紹介」ですら結構頑張らないとできる気がしないけど、それなりに読んでるのを、とりあえず一覧でまとめておこうと思った次第。
昔は論文なんて全然読む習慣なかったし、読もうとしても(英語力と前提知識の問題で)全然読めなかったけど、少しでも読めるようになってくると楽しいですね。
あと「読んだ」というのは、
- 最初に読んだのは結構昔だけど、当時は少ししか理解できなかったので、最近また読んだ or また読み返したい
- まだ全部読んですらいないけど、面白そうなのでこれからちゃんと読みたい
など全部含みます。
さらに「最近」というのも、いつどの論文読んだか?なんて全く記録とってないので、ここ1ヶ月とかではなく、半年〜1年くらいかもしれない。というか論文ある程度読むようになったのがここ1、2年くらいかもしれない。
個人的なメモのために、論文が出た年を大まかに書いてるけど、間違ってたら教えて下さい。
すでに書きましたが完璧に理解出来てるわけではないので、それぞれの論文に適当に一言つけた説明というかメモも、あまり信用しないほうがいいかもしれません。
property based testing関連
scalaprops作ってて気がついたらひたすら論文読むようになっていた。関数型Scalaでこのあたり話す予定
- http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.119.3629&rep=rep1&type=pdf
- みんな大好き(?) Quickcheck
- 2000年
- "SmallCheck and Lazy SmallCheck automatic exhaustive testing for small values"
- quickcheckとは別のsmallcheckというやつ
- 2008年
- Testing Monadic Code with QuickCheck
- まぁタイトルのとおりです
- 2002年
- Feat Functional Enumeration of Algebraic Types
- さらにまた別のなにか
- Testing Polymorphic Properties
- すでにquickcheckに入ってる?polymorphicな関数のテストどうやるの?みたいな話
- SmartCheck Automatic and Efficient Counterexample Reduction and Generalization
- Shrinkingをsmartに(今までよりいい感じに)行うらしい
- 2014年
その他
その他、というか「property based testing関連」がたまたま集中的に読んでいただけで、普段そんな読み方しないので、とくにそれ以外を分類せず残りを書いていく
- Data types a la carte
- Free Monadの合成の基本となるやつなので読みましょう
- Reflection without Remorse
- データ構造工夫しておくと、色々速くなるよみたいな話?
- Safe Zero-cost Coercions for Haskell
- 最近のGHCの内部の話。
- 安全かつ実行時コストゼロでnewtypeを扱う
- scalazのTagged typeと思った以上に関係あるので、興味ある人はこのscalazのissue読むとよい https://github.com/scalaz/scalaz/issues/838
- "Backtracking, Interleaving, and Terminating Monad Transformers"
- またolegさん
- LogitTモナド
- smallcheckがこれに依存してたので読み始めた
- ライブラリ側だか論文自体のlawの記述が間違ってる疑惑が浮上してるが、だれか教えてくれ
- Extensible Effects An Alternative to Monad Transformers
- Adventures in Three Monads
- (あまり知られてないけど面白いMonadを?)3つ紹介する、みたいな感じ。たぶん
- その内の1つがLogicTだったので
- 2011
- Composing monads
- その名の通り、Monadの合成の話
- 長いし難しいしで、まだあまり理解できてないので、今後何度も読みたい
- Free Applicative Functors
- 最近Scalazにも入ったやつ
- 2013年
- Your Server as a Function
- Finagleやその内部で使ってるFutureなどの話
- ここに上げた中では簡単なほうだと思うので、おすすめ?
- The Essence of the Iterator Pattern
- 何度かよんでるけど、人にわかりやすく説明できるレベルには全然いたってないので、また読み返したい
- "Iterator パターンの本質"
- From monoids to near-semirings: the essence of MonadPlus and alternative
- http://www.fceia.unr.edu.ar/~mauro/pubs/FromMonoidstoNearsemirings.pdf
- つい最近?2015年にでたやつ?
- 「MonadPlusとAlternativeは単なる自己関手の圏における近半環だよ。何か問題でも」
- Functional Pearl: A Smart View on Datatypes
- このまえのFree MonadPlusでの記事にかいたけど、まだ「reflection without remorse」と似たような話?という理解しかしてない(そしてその理解が合ってるのかどうか不明)
- Asymptotic Improvement of Computations over Free Monads
- 単にFreeというよりは、Codensityとかそういうの?(よくわかってない)
すこしチラ見しただけなら他にもいっぱいあるし、ある程度読んだのに載せ忘れてるのあると思うけれど、キリがないのでとりあえずこのくらいで。
このあたりの話をできる(or 教えてくれる)人が身近にもっと沢山ほしいです。