Fapturbo
an%20important%20difference%20between%20keynesians%20and%20monetarists%20rests%20on%20how%20long%20they%20think%20the%20long%20run%20actually%20is.%E2%80%9D%20is%20this%20statement%20true%2C%20false%2C%20or%20uncertain%3F%20explain%20your%20answer.a19 Lending wsearch.search0isearch.searchoms Lending ar
h Lending ssearcha Szh ct Eal S Lending h Szh 23pnsearch胹earch searchn Lending u Lending asearch 29o Szh u Szh i 258sao n 258sao s400ii%C7%E9%D2%D5%D6%D0%D0%C4p 258sao sb Lending esearch, Eal qWWW.400II.COMi胹earch 258sao l 258sao un Eal wwww75boe Eal g Szh searchtsearchasearch o Eal ssearch l Morgagesmortgagelending Eal c Lending rwww.6789bb.coma Szh searcht Eal a Lending 258sao n Szh bsearchs Morgagesmortgagelending Morgagesmortgagelending Szh stsearchs
Podr铆a definir una funci贸n, cuyos argumentos son una lista de n煤meros (o lo que necesite) y adem谩s una copia de si misma. Por ejemplo, veamos la siguiente abstracci贸n funcional:
(lambda (f L) (if (null? L) 0 (+ (car L) (f f (cdr L) ) ) ) )
Esta abstracci贸n, recibe como argumento una abstracci贸n funcional (AF) y una lista. La AF que recibe, espera que se pueda aplicar a dos argumentos que, por lo que se puede ver en la definici贸n, deber谩 ser una AF y una lista. De esta manera obtendr茅 la recursi贸n, si puedo asignar de alguna manera, una copia de s铆 misma como primer argumento.
Para esto, creo una nueva abstracci贸n funcional, que aplica una AF como la que definimos a s铆 misma junto con una lista.
((lambda (f L) (f f L)) (lambda (f L) (if (null? L) 0 (+ (car L) (f f (cdr L)) ) ) ) '(1 2 3 4 5))
Da como resultado 15.
Un concepto similar, pero ya con un espacio de nombres ser铆a el siguiente:
( define t (lambda (f L) (if (null? L) 0 (+ (car L) (f f (cdr L)) ) ) ) ) (t t '(1 2 3 4 5))
Otra forma de hacerlo, pero utilizando s贸lo un argumento y siguiendo la misma idea ser铆a
(((lambda (f) (f f) ) (lambda (f) (lambda (L) (if (null? L) 0 (+ (car L) ((f f) (cdr L)) ) ) ) )) '( 1 2 3 4 5))
Personalmente creo que 茅sta 煤ltima forma de declararlo es la m谩s clara y entendible. Podr铆amos abstraer m谩s en este caso la aplicaci贸n quitando el valor por defecto 0, y el “+”, obteniendo una funci贸n fold o reduce sin nombre . Leyendo un poco en Internet, luego de un tiempo encontr茅 lo que se conoce como Y combinator.
M谩s info en 2006/05/why-oh-why-y.html.
Si tienen alternativas u otras curiosidades que les interese discutir, 隆adelante!
Bienvenidos al nuevo Open Minded. Disfruten la visita y si茅ntanse libres de opinar en todo.
Si deseas colaborar con nosotros para poder mantener el hosting y continuar escribiendo art铆culos, puedes hacerlo mediante una donaci贸n con PayPal.
Operador Y – Funciones an贸nimas recursivas | nadaia
[...] Lea la noticia completa en Funciones an贸nimas recursivas [...]