6
와 재귀 다형성 기능을 어떻게 쓸 수있다 : 이것은 주로 내가 원하는 것을 할 것 같다은 내가 간단한 재귀 다형성 기능을 쓸 수있는 무형의
object simpleRec extends Poly1 {
implicit def caseInt = at[Int](identity)
implicit def caseList[A, B](implicit ev: simpleRec.Case.Aux[A, B]) =
at[List[A]](_.headOption.map(simpleRec))
}
을; 그러나, 나는 무의미한 결과 유형을 얻는 것 같다 :
scala> simpleRec(List.empty[List[Int]])
res3: Option[B] = None
scala> simpleRec(List(List(1)))
res4: Option[B] = Some(Some(1))
가 어떻게이 나에게 Option[Option[Int]]
보다는 Option[B]
의 값을 제공 할 수 있습니까? 나는 여기서 바보 같은 실수를 범하기를 기대하지만, 그것이 무엇인지 알 수 없다.
사용. 내 재귀 대답은 "올바른 사례 유형을 제공하는 Case [A]'"를 사용했습니다. 'simpleRec (List (List (1))) : 옵션 [Option [Int]]'. –
전체 코드를 붙여 넣을 수 있습니까? – nathanengineer