Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revisionBoth sides next revision
teaching:cc4101:tareas:2015-2:tarea1 [2015/09/17 10:36] – [(4.0) Lenguaje Imperativo] etanterteaching:cc4101:tareas:2015-2:tarea1 [2015/09/17 10:42] – [(2.0) Programación funcional] etanter
Line 9: Line 9:
 '(a a a b b b c c cT) '(a a a b b b c c cT)
 </code> </code>
- 
   - (0.7) Defina una función ''%%(groupby selector lst)%%'' que permita agrupar los elementos de una lista basado en un criterio de selección. Ejemplos: <code scheme>   - (0.7) Defina una función ''%%(groupby selector lst)%%'' que permita agrupar los elementos de una lista basado en un criterio de selección. Ejemplos: <code scheme>
 > (groupby cdr  > (groupby cdr 
Line 25: Line 24:
 '((0 "21") (2 "5" "5" "89" "47") (1 "34" "28")) '((0 "21") (2 "5" "5" "89" "47") (1 "34" "28"))
 </code> </code>
- 
   - (0.8) Utilizando la función ''%%(apply fun args)%%''  de Racket,  implemente la función ''%%(curry-n f)%%'' que dado una función ''f'' retorna su versión currificada. Para determinar la cantidad de parámetros que espera la función ''%%f%%'', utilice la función ''%%procedure-arity%%'' provista en Racket (puede asumir que la función ''%%f%%'' recibe un número fijo de parámetros). Ejemplos: <code scheme>   - (0.8) Utilizando la función ''%%(apply fun args)%%''  de Racket,  implemente la función ''%%(curry-n f)%%'' que dado una función ''f'' retorna su versión currificada. Para determinar la cantidad de parámetros que espera la función ''%%f%%'', utilice la función ''%%procedure-arity%%'' provista en Racket (puede asumir que la función ''%%f%%'' recibe un número fijo de parámetros). Ejemplos: <code scheme>
 > (define f (curry-n (λ (x y z) (+ x y z))))                                                   > (define f (curry-n (λ (x y z) (+ x y z))))