Funcions d'ordre superior P73993


Statement
 

pdf   zip

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