|
Scala example source code file (unapplyNeedsMemberType.scala)
The Scala unapplyNeedsMemberType.scala source code
// error with -Xunapply, (because of missing call to memberType?)
trait Gunk[a] {
type Seq
object Cons {
def unapply(s: Seq) = unapply_Cons(s)
}
def unapply_Cons(s: Any): Option[Tuple2[a, Seq]]
}
class Join[a] extends Gunk[a] {
type Seq = JoinSeq
abstract class JoinSeq
case class App(xs: Seq, ys: Seq) extends JoinSeq
def append(s1: Seq, s2: Seq): Seq = s1 // mock implementation
def unapply_Cons(s: Any) = s match {
case App(Cons(x, xs), ys) => Some(Pair(x, append(xs, ys)))
case _ => null
}
}
Other Scala examples (source code examples)Here is a short list of links related to this Scala unapplyNeedsMemberType.scala source code file: |
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.