These are chat archives for scalajp/functional

25th
Oct 2014
kenji yoshida
@xuwei-k
Oct 25 2014 09:03
shapeless作者に、函数型なんたらのshapelessの資料のtweetをretweetされた((((;゚Д゚))))
kenji yoshida
@xuwei-k
Oct 25 2014 13:27
Extensible Effectsは基本的にdata type a la carteでの内容(つまりこれ http://d.hatena.ne.jp/xuwei/20140618/1403054751 )と基本的には同じものだよ。とHaskellの人に懇親会で教えてもらったのが、函数型なんたらでの一番の収穫だったかもしれない
kenji yoshida
@xuwei-k
Oct 25 2014 15:20
https://github.com/wemrysi/tseq おっ、ScalaでのReflection without Remorseの翻訳がこんなところにも
kenji yoshida
@xuwei-k
Oct 25 2014 15:34
以前、最低一箇所はLeibniz.forceの安全でないメソッド使う必要あるかも http://d.hatena.ne.jp/xuwei/20140706/1404612620 って書いたけど、これ使わないで書けてるのか・・・? scalaz.Forall 使えって頑張ればいけるのかな
todesking
@todesking
Oct 25 2014 16:23
sealed abstract class A
trait B extends A
trait C extends A
trait D extends A

class X extends B with C
class Y extends D

object A {
  def foo(a:A):Unit = a match {
    case _:B =>
    case _:D =>
  }
}
で、matchの網羅性チェックに引っかかって警告が出る
実際来る型はXかYに限定されるので、通してほしいところ
kenji yoshida
@xuwei-k
Oct 25 2014 16:28
それはScalaコンパイラが正しい気がする
todesking
@todesking
Oct 25 2014 16:28
う、なにか見落としが
kenji yoshida
@xuwei-k
Oct 25 2014 16:30
sealed abstract class A と書いて trait B extends A と書くと、A は直接外部のファイルでは継承できないけど、B は継承できるという罠
B, C, D, X, Y の、どれか、もしくはすべてに、sealed や final が必要
todesking
@todesking
Oct 25 2014 16:30
!!
仕様を勘違いしておりました
eugene yokota
@eed3si9n
Oct 25 2014 20:06
昨日丁度社内でそれは evil か evil じゃないかという議論をしてた。