Adam Gordon Bell

Scala

Tag: Scala

A Better 3-way merge?

August 21, 2016 ยท git merging scala

3-way merge works great for code merges in the majority of cases. Can we do better, however. Can we decrease the number of places where a manual conflict resolution is required. I would say, yes we can, if we know more about the syntax of the file in question.

Read more โ†’

More Scala Groups And Tuples

August 19, 2015 ยท scala slick tuples

Continuing from here, I have lists of tuples and I want to group them. Here I have a list of 4-tuples and I want to group the second tuple by the first. The fact that I need to do this probably represents some greater problem, but that is a story for another time

import shapeless._
import syntax.std.tuple._
import poly._

object GroupLists {
def group1TwoExtra[A,B,C,D](t : List[(A,B,C,D)]) : List[(A,List[B],C,D)] = {
      val map = LinkedHashMap[A, LinkedHashSet[B]]()
      val mapOther = scala.collection.mutable.Map[A,(C,D)]()
      for (i <- t) {
        val key = i.head
        map(key) = map.lift(key).getOrElse(LinkedHashSet[B]()) + i.drop(1).head
        mapOther += (key -> i.drop(2))
      }
      map.map(b => (b._1, b._2.toList) ++ mapOther(b._1)).toList
    }

Read more โ†’

Scala Slick Group

August 4, 2015 ยท scala slick

In slick, if each foo has many bars and I need to retrive several foos and associtated bars I will do something like this:

val join = for {
     (f,b) <-
                  foo.filter(...) on  innerJoin
                  bar on (...)
   } yield (o,i,s)

Read more โ†’