Les funcions anònimes, també conegudes com a funcions lambda, són funcions que no tenen un nom explícit. Són molt útils quan necessitem definir una funció ràpidament per passar-la com a argument a una altra funció, especialment en programació funcional.

Conceptes Clau

  1. Definició de Funcions Anònimes: Una funció anònima es defineix utilitzant la sintaxi (paràmetres) => expressió.
  2. Ús Comú: Les funcions anònimes s'utilitzen sovint amb col·leccions i funcions d'ordre superior.
  3. Sintaxi Reduïda: Scala permet una sintaxi molt concisa per a les funcions anònimes, especialment quan es treballa amb col·leccions.

Sintaxi de les Funcions Anònimes

La sintaxi bàsica d'una funció anònima és la següent:

(paràmetres) => expressió

Exemple Bàsic

val suma = (a: Int, b: Int) => a + b
println(suma(3, 4)) // Sortida: 7

En aquest exemple, suma és una funció anònima que pren dos paràmetres a i b i retorna la seva suma.

Funcions Anònimes amb Col·leccions

Les funcions anònimes són especialment útils quan es treballa amb col·leccions. Per exemple, podem utilitzar una funció anònima amb el mètode map per transformar una llista:

val llista = List(1, 2, 3, 4)
val llistaDoblada = llista.map(x => x * 2)
println(llistaDoblada) // Sortida: List(2, 4, 6, 8)

Sintaxi Reduïda

Scala permet una sintaxi més concisa per a les funcions anònimes. Per exemple, podem ometre els parèntesis si només hi ha un paràmetre:

val llista = List(1, 2, 3, 4)
val llistaDoblada = llista.map(_ * 2)
println(llistaDoblada) // Sortida: List(2, 4, 6, 8)

En aquest cas, _ representa el paràmetre de la funció anònima.

Exercicis Pràctics

Exercici 1: Filtrar Nombres Parells

Escriu una funció anònima que filtri els nombres parells d'una llista.

val nombres = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
val nombresParells = nombres.filter(_ % 2 == 0)
println(nombresParells) // Sortida: List(2, 4, 6, 8, 10)

Exercici 2: Transformar una Llista de Strings

Escriu una funció anònima que transformi una llista de strings a la seva longitud.

val paraules = List("Scala", "és", "genial")
val longituds = paraules.map(_.length)
println(longituds) // Sortida: List(5, 2, 6)

Exercici 3: Ordenar una Llista de Tuples

Escriu una funció anònima que ordeni una llista de tuples (Int, String) pel primer element de la tupla.

val tuples = List((3, "tres"), (1, "un"), (2, "dos"))
val tuplesOrdenades = tuples.sortBy(_._1)
println(tuplesOrdenades) // Sortida: List((1, "un"), (2, "dos"), (3, "tres"))

Errors Comuns

  1. Oblidar el Tipus de Paràmetres: Quan es defineixen funcions anònimes, és important especificar els tipus de paràmetres si no es poden inferir automàticament.
  2. Ús Incorrecte de _: _ només es pot utilitzar per a funcions anònimes amb un sol paràmetre. Per a més paràmetres, cal utilitzar (paràmetres) => expressió.

Resum

Les funcions anònimes són una eina poderosa en Scala, especialment quan es treballa amb col·leccions i funcions d'ordre superior. La seva sintaxi concisa permet escriure codi més net i llegible. En aquest tema, hem après la sintaxi bàsica de les funcions anònimes, com utilitzar-les amb col·leccions i hem practicat amb alguns exercicis pràctics.

© Copyright 2024. Tots els drets reservats