#近づいたので再掲。5月30日(土)「Lens&Prism勉強会」 #LensPrism http://connpass.com/event/13929/ #Koen の "Shrinking and showing functions" Haskell symposium 2012 の talk は Youtube にあります : https://www.youtube.com/watch?v=CH8UQJiv9Q4 ###Koen は気さくなひとなので、事情をはなせばもしかすると paper くれるかもしれませんが、「買わないとだめだよ」と言われるかもしれません(責任は持てません)
#一昔前は、いや二昔くらいになるかな、論文読んでみたいんですがとメール出せば著者の方は喜んで送ってくれるって感じだったんですが、今はCS系だと最終稿を自分のところで公開okな学会が普通で多くの人がそうしてるので、逆にリクエストを送るのは煩わしいかなとか思っちゃいますね。
##Scala のことまったくわかってないので、外しているかもしれませんが、GHC 拡張の TypeOperators は Scala でこうかくみたいなことを Google で見つけました
###ぼくも「おまえの書いた論文を見せてほしいのでメールで」みたいなことを言われたことがあるのですが、実際有料な論文誌に出していたので、ずいぶん悩んだ結果(co-authors とも相談した) 買ってくれとこたえました…
#Web で買えたので…
##Test.QuickCheck.Function をそのまま移植するなら、Arbitrary と Poly を作るみたいだけど、Poly は GeneralizedNewtypeDeriving 拡張を要求するので Scala でどう書いたらいいものやら…(簡単なのかしら)
#さっき挙げた Koen の talk を Youtube で聞いていますが (30 分) めっちゃ面白いし、わかりやすいと思います…
#QuickCheck.Function の shrinking はハイテクだ…
##動機が 12 分まで、 Haskell での実装のスケッチが 12 分から始まります
#a -> b と a :-> b の行き来もまたトリッキーにみえるなあ…
#12 分から 21 分までが -> と :-> の話で、21 分から shrinking の話
#25 分から、QuickCheck.Function を使うときに必要な class Argument の instance を具体的にどうつくるかを説明している
#27 分の buildMap の説明は、現状の QuickCheck.Function の functionMap のこと(間違えてたらすみません)
#それで気がついたけど、25 分の説明 class Argument は、QuickCheck.Function の実装では class Function ですね…
#28 分頃 data Fun の説明、それでもうすぐ talk が終わります
#ぼくは 30 分きいただけでは、とても理解したとは言えないです。見返すときに、どの時間から何を説明していたかを書きましたが、それが役にたてば幸いです
#QuickCheck.Function の全体像は 12 分頃に説明されています。ここが一番重要な点だと思う(残りは動機と実装についての説明)
#Youtube から転載
#したいけど、chaton で画像を見せるのどうやるんだっけ?
#画像の URL 貼るんだっけ
#https://t.co/TeSfdT3obd
より転載 (12.23) http://t.co/W9oGWe24id
#貼れなかったですが、まあこれです
#お、みなさんありがとうございます
#論文は、読めたら読みたいくらいだったので、まぁ(自分の英語力も高くないし)読んだからといって理解できる可能性もそんなに高くないので、後でソースコードみてもう少し頑張ってみます
#Scala で GeneralizedNewtypeDeriving 自体は、色々面倒で記述冗長になるけれど、一応不可能ではないですね
#Test.QuickCheck.Function の関数って「引数のcoarbitraryで乱数生成器の状態をmutateして、arbitraryした結果を返すだけ」だと思ってましたが、実際には色々やってるんですね。面白いです。