Funcions d'ordre superior X88591


Statement
 

pdf   zip

html

Es demanen els codis de diverses funcions. Seguiu el format dels exemples que es mostren a sota.

  1. Feu una funció prodParells(llista) que multiplica tots el nombres parells d’una llista.
  2. Feu una funció reverse(llista) que inverteix els elements d’una llista usant el reduce (amb tres arguments).
  3. Definiu una funció d’ordre superior zipWith(f, l1, l2) equivalent a la de Haskell.
  4. Feu una funció countIf(f, llista) que donada una propietat i una llista, ens retorna el nombre d’elements de la llista que satisfan la propietat. Noteu que aquesta funció d’ordre superior existeix en llenguatges de tractament de fulls de càlcul com ara EXCEL.

Puntuació

Totes les funcions valen el mateix.

Sample session
>>> prodParells([1,2,4,3])
8
>>> reverse([1,2,3])
[3, 2, 1]
>>> zipWith(lambda x, y: x + y, [1, 2, 3], [2, 2])
[3, 4]
>>> countIf(lambda x: x % 2 == 0, [1, 2, 3, 4, 5])
2
Information
Author
Gerard Escudero i Albert Rubio
Language
Catalan
Official solutions
Python
User solutions