Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def lookupL[K, V](k: K): List[(K, V)] @?> V = {
- @annotation.tailrec
- def lookupr(z: (List[(K, V)], (K, V), List[(K, V)])): Option[(List[(K, V)], (K, V), List[(K, V)])] =
- z match {
- case (l, x@(kk, v), r) if k == kk => Some((l, x, r))
- case (_, _, Nil) => None
- case (l, x, r::rs) => lookupr((x::l, r, rs))
- }
- @?> {
- case Nil => None
- case h::t => lookupr((Nil, h, t)) map {
- case (l, (k, v), r) => (vv => l.reverse ::: (k, vv) :: r, v)
- }
- }
- }
RAW Paste Data