Differences
This shows you the differences between two versions of the page.
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] etanter | teaching:cc4101:tareas:2015-2:tarea1 [2015/09/17 10:42] – [(2.0) Programación funcional] etanter |
---|
'(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 |
'((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)))) |