Функциональное программирование, карта Scala и сгиб влево [закрыто]

Какие хорошие уроки на левой стороне?

Исходный вопрос, восстановленный после удаления, чтобы обеспечить контекст для других ответов:

Я пытаюсь реализовать метод для нахождения прямоугольника, круга, местоположения и группы, которая расширяет Shape. Группа в основном массив форм

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  

Я получил ограничивающую рамку для всех трех, кроме первой группы. Итак, теперь для метода ограничительной рамки я знаю, что должен использовать map и свернуть влево для Group, но я просто не могу узнать точный синтаксис его создания.

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.
  }
}

Ограничивающий прямоугольник группы - это наименьший ограничивающий прямоугольник со всеми вложенными формами

Ответы на вопрос(3)

Ваш ответ на вопрос