Funcions d'ordre superior P73993


Statement
 

pdf   zip

thehtml

Es demana els codis de diverses funcions. Seguiu el format dels exemples que es mostren a sota. Tots els codis es poden escriure sense utilitzar bucles.

  1. Feu una funció evens_product(L) que multiplica tots el nombres parells d’una llista d’enters.
  2. Feu una funció reverse(L) que inverteix els elements d’una llista usant la funció reduce.
  3. Definiu una funció d’ordre superior zip_with(f, L1, L2) equivalent al ZipWith de Haskell.
  4. Feu una funció count_if (f, L) que, donada una propietat (funció que donat un element retorna un booleà) 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
>>> evens_product([1,2,4,3])
8
>>> reverse([1,2,3])
[3, 2, 1]
>>> zip_with(lambda x, y: x * y, [1, 2, 3], [10, 2])
[10, 4]
>>> count_if(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
Python