나는 방금 eugene's blog post에서 스카프를 배우기 시작했습니다. 내 코드에서 ===를 사용하는 것을 시도하고 있지만 여기에 컴파일 오류를 value === is not a member of object Red
스카 쯔의 사용 === adt의
을 반환 것은 내 코드
import scalaz._
sealed trait TrafficLight
case object Red extends TrafficLight
case object Yellow extends TrafficLight
case object Green extends TrafficLight
object Equality {
import Scalaz._
def eqInstance[A](f: (A,A) => Boolean): Equal[A] = new Equal[A]{
def equal(a1: A, a2: A): Boolean = f(a1,a2)
}
def trafficLightEqualFunction(a1: TrafficLight, a2: TrafficLight): Boolean = (a1, a2) match {
case (Red, Red) => true
case (Yellow, Yellow) => true
case (Green, Green) => true
case _ => false
}
implicit val trafficLightEqual: Equal[TrafficLight] = eqInstance(trafficLightEqualFunction)
def main(args: Array[String]){
println(Red === Red)
}
} 자신의 블로그 불평 정확히 무엇
작품을 스칼라 2.11.7 및 scalaz 7.1.3에 생산 :
당신은 만들어 스칼라 TrafficLight로 레드를 볼 수 있음을 수정할 수 있습니다 'TRUE'를. 어떤 버전을 사용하고 있습니까? –
ScalaZ 7.2.2에서 작동하지 않을 수 있습니다. – pedrofurla