haskell-ja > Archives > 2015/05/28

2015/05/28 03:10:21 UTC[1..100]>>=pen
#
近づいたので再掲。5月30日(土)「Lens&Prism勉強会」 #LensPrism http://connpass.com/event/13929/
2015/05/28 03:34:45 UTCikegami__
#
Koen の "Shrinking and showing functions" Haskell symposium 2012 の talk は Youtube にあります : https://www.youtube.com/watch?v=CH8UQJiv9Q4
2015/05/28 03:44:27 UTCikegami__
#
.cabal の管理について、こういうことを考えてみました。 https://twitter.com/ikegami__/status/603705111085453312
#
@notogawa さんの提案した実装+αでできるのではないかと思っています。 https://twitter.com/notogawa/status/603708714646806528
#
Koen は気さくなひとなので、事情をはなせばもしかすると paper くれるかもしれませんが、「買わないとだめだよ」と言われるかもしれません(責任は持てません)
2015/05/28 03:50:06 UTCshiro
#
一昔前は、いや二昔くらいになるかな、論文読んでみたいんですがとメール出せば著者の方は喜んで送ってくれるって感じだったんですが、今はCS系だと最終稿を自分のところで公開okな学会が普通で多くの人がそうしてるので、逆にリクエストを送るのは煩わしいかなとか思っちゃいますね。
2015/05/28 03:51:09 UTCikegami__
#
ぼくは Test.QuickCheck.Function つかったことありませんが、こういう example があってよさげです : http://stackoverflow.com/questions/9686665/how-can-i-test-a-higher-order-function-using-quickcheck
2015/05/28 03:57:02 UTCikegami__
#
Scala のことまったくわかってないので、外しているかもしれませんが、GHC 拡張の TypeOperators は Scala でこうかくみたいなことを Google で見つけました
#
http://faithandbrave.hateblo.jp/entry/20120111/1326263878
#
https://github.com/okomok/ken/blob/805ac5ed607b0b9a8377fdf552d09d29d7952dc4/src/test/scala/com/github/okomok/kentest/example/TypeSafeEvents.scala#L7
#
ぼくも「おまえの書いた論文を見せてほしいのでメールで」みたいなことを言われたことがあるのですが、実際有料な論文誌に出していたので、ずいぶん悩んだ結果(co-authors とも相談した) 買ってくれとこたえました…
#
Web で買えたので…
#
QuickCheck.Function 使うの、これもそうかな http://stackoverflow.com/questions/5208621/show-ing-functions-used-in-quickcheck-properties
2015/05/28 04:09:23 UTCikegami__
#
Test.QuickCheck.Function をそのまま移植するなら、Arbitrary と Poly を作るみたいだけど、Poly は GeneralizedNewtypeDeriving 拡張を要求するので Scala でどう書いたらいいものやら…(簡単なのかしら)
2015/05/28 04:13:27 UTCikegami__
#
さっき挙げた Koen の talk を Youtube で聞いていますが (30 分) めっちゃ面白いし、わかりやすいと思います…
2015/05/28 04:18:36 UTCikegami__
#
QuickCheck.Function の shrinking はハイテクだ…
2015/05/28 04:22:43 UTCsakai
#
Test.QuickCheck.FunctionはFunctor則やMonad則などのテストに使ったことがあります。非常に簡単な例ですが。 https://github.com/msakai/extended-reals/blob/c724f6fcece279873354f576b9099579cb42f8ec/test/TestExtendedReal.hs
2015/05/28 04:22:54 UTCikegami__
#
動機が 12 分まで、 Haskell での実装のスケッチが 12 分から始まります
2015/05/28 04:31:44 UTCikegami__
#
a -> b と a :-> b の行き来もまたトリッキーにみえるなあ…
#
12 分から 21 分までが -> と :-> の話で、21 分から shrinking の話
2015/05/28 04:38:55 UTCikegami__
#
25 分から、QuickCheck.Function を使うときに必要な class Argument の instance を具体的にどうつくるかを説明している
2015/05/28 04:43:15 UTCikegami__
#
27 分の buildMap の説明は、現状の QuickCheck.Function の functionMap のこと(間違えてたらすみません)
#
それで気がついたけど、25 分の説明 class Argument は、QuickCheck.Function の実装では class Function ですね…
#
28 分頃 data Fun の説明、それでもうすぐ talk が終わります
#
ぼくは 30 分きいただけでは、とても理解したとは言えないです。見返すときに、どの時間から何を説明していたかを書きましたが、それが役にたてば幸いです
#
QuickCheck.Function の全体像は 12 分頃に説明されています。ここが一番重要な点だと思う(残りは動機と実装についての説明)
#
Youtube から転載
#
したいけど、chaton で画像を見せるのどうやるんだっけ?
#
画像の URL 貼るんだっけ
2015/05/28 04:59:34 UTCikegami__@twitter
#
https://t.co/TeSfdT3obd
より転載 (12.23) http://t.co/W9oGWe24id
2015/05/28 05:01:31 UTCikegami__
#
貼れなかったですが、まあこれです
2015/05/28 05:24:46 UTCxuwei_k
#
お、みなさんありがとうございます
#
論文は、読めたら読みたいくらいだったので、まぁ(自分の英語力も高くないし)読んだからといって理解できる可能性もそんなに高くないので、後でソースコードみてもう少し頑張ってみます
#
Scala で GeneralizedNewtypeDeriving 自体は、色々面倒で記述冗長になるけれど、一応不可能ではないですね
2015/05/28 23:42:21 UTCsakai
#
Test.QuickCheck.Function の関数って「引数のcoarbitraryで乱数生成器の状態をmutateして、arbitraryした結果を返すだけ」だと思ってましたが、実際には色々やってるんですね。面白いです。