Skip to content

Instantly share code, notes, and snippets.

@r-wheeler
Created February 15, 2015 01:08
Show Gist options
  • Save r-wheeler/cc7071bfd9f4c83cf451 to your computer and use it in GitHub Desktop.
Save r-wheeler/cc7071bfd9f4c83cf451 to your computer and use it in GitHub Desktop.
Daily programmer Challenge 201
//http://www.reddit.com/r/dailyprogrammer/comments/2vkwgb/20150211_challenge_201_practical_exercise_get/
case class Element(item: String,A: Double, B: Double)
type queue = List[Element]
def enqueue(q: queue, i: String, A: Double, B: Double): queue = Element(i,A,B) :: q
def dequeue(q: queue)(key: Element => Double): (Element, queue) =
(q.sortBy(key).reverse.head, q.sortBy(key).reverse.tail)
val dequeueA = dequeue(_:queue)(_.A)
val dequeueB = dequeue(_:queue)(_.B)
def count(q: queue): Int = q.length
def clear(q: queue): queue = Nil
val q = enqueue(Nil, "a", 2.1,2.0)
val firstA, q2 = dequeueA(q)
val firstB, q3 = dequeueA(q)
count(q)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment