Select Git revision
collect.scala
Forked from
joel.cavat / tp-scala-collections
Source project has a limited visibility.
collect.scala 1.56 KiB
package ch.hepia.tpscala
/* Implémentez les fonctions suivantes.
*/
object Collect {
case class Album( title: String, artist: String, year: Int )
case class Duration( minutes: Int, seconds: Int )
case class Track( title: String, duration: Duration )
val albums = List(
Album( "Mit Gas", "Tomahawk", 2003 ),
Album( "Pork Soda", "Primus", 1993 ),
Album( "Brown Album", "Primus", 1997 ),
Album( "Distraction Pieces", "Scroobius Pip", 2011 )
)
val tracks = Map(
"Mit Gas" -> List(
Track( "Mayday", Duration( 3, 32 ) )
),
"Pork Soda" -> List(
Track( "DMV", Duration( 4, 58 ) ),
Track( "Mr. Krinkle", Duration( 5, 27 ) )
),
"Brown Album" -> List(
Track( "Fisticuffs", Duration( 4, 25 ) ),
Track( "Camelback Cinema", Duration( 4, 0 ) ),
Track( "Kalamazoo", Duration( 3, 31 ) )
),
"Distraction Pieces" -> List(
Track( "Let 'Em Come", Duration( 4, 25 ) ),
Track( "Domestic Silence", Duration( 3, 58 ) )
)
)
/* Retourne la liste de morceaux associés à un artiste */
def tracksOf( artist: String ): List[Track] = Nil
/* Retourne la liste de tous les morceaux de moins de 4 minutes */
def shortTracks: List[Track] = Nil
/* Retourne les titres des morceaux antérieurs à une année */
def titlesBefore( year: Int ): List[String] = Nil
/* Calcule la durée totale de tous les morceaux disponibles.
REMARQUE: ont veut que les secondes soient inférieures à 60 mais les
minutes peuvent dépasser ce total.
*/
def totalDuration: Duration = Duration( 0, 0 )
}