Programação funcional, mapa Scala e dobra à esquerda [fechado]

Quais são alguns bons tutoriais na dobra à esquerda?

Pergunta original, restaurada da exclusão para fornecer contexto para outras respostas:

Estou tentando implementar um método para encontrar a caixa de retângulo de círculo, círculo, localização e o grupo que estende Shape. O grupo é basicamente uma matriz de formas

abstract class Shape  
case class Rectangle(width: Int, height: Int) extends Shape  
case class Location(x: Int, y: Int, shape: Shape) extends Shape  
case class Circle(radius: Int) extends Shape  
case class Group(shape: Shape*) extends Shape  

Peguei a caixa delimitadora para todos os três, exceto o grupo um. Portanto, agora, para o método da caixa delimitadora, eu sei que deveria usar o mapa e dobrar à esquerda para o Grupo, mas não consigo descobrir a sintaxe exata de sua criação.

object BoundingBox {  
  def boundingBox(s: Shape): Location = s match {  
    case Circle(c)=>   
      new Location(-c,-c,s)  
    case Rectangle(_, _) =>  
      new Location(0, 0, s)  
    case Location(x, y, shape) => {  
      val b = boundingBox(shape)  
      Location(x + b.x, y + b.y, b.shape)  
    }  
    case Group(shapes @ _*) =>  ( /: shapes) { } // i dont know how to proceed here.
  }
}

A caixa delimitadora de grupo é basicamente a menor caixa delimitadora com todas as formas incluídas.