stringtranslate.com

Paramorfismo

En los métodos formales de la informática , un paramorfismo (del griego παρά , que significa "juntos") es una extensión del concepto de catamorfismo introducido por primera vez por Lambert Meertens [1] para tratar con una forma que "se come su argumento y lo conserva también", [2] [3] como lo ejemplifica la función factorial . Su dual categórico es el apomorfismo .

Es una versión más conveniente del catamorfismo ya que brinda a la función de paso de combinación acceso inmediato no solo al valor del resultado calculado recursivamente a partir de cada subobjeto recursivo, sino también al subobjeto original en sí.

Ejemplo de implementación de Haskell, para listas:

cata :: ( a -> b -> b ) -> b -> [ a ] ​​-> b para :: ( a -> ([ a ], b ) -> b ) -> b -> [ a ] ​​-> b ana :: ( b -> ( a , b )) -> b -> [ a ] ​​apo :: ( b -> ( a , Either [ a ] ​​b )) -> b -> [ a ]                                             cata f b ( a : como ) = f a ( cata f b como ) cata _ b [] = b               para f b ( a : como ) = f a ( como , para f b como ) para _ b [] = b                ana u b = caso u b de ( a , b' ) -> a : ana u b'               apo u b = caso u b de ( a , Derecha b' ) -> a : apo u b' ( a , Izquierda como ) -> a : como                       

Véase también

Referencias

  1. ^ "Paramorfismos" (PDF) . 1990. pág. 44. CiteSeerX  10.1.1.19.4825 .
  2. ^ Philip Wadler . Vistas: Una forma de que la comparación de patrones conviva con la abstracción de datos. Informe técnico 34, Grupo de metodología de programación, Universidad de Gotemburgo y Universidad Tecnológica de Chalmers, marzo de 1987.
  3. ^ Meijer, Erik ; Fokkinga, Martín; Paterson, Ross (1991). "Programación funcional con plátanos, lentes, sobres y alambre de púas". CiteSeerX 10.1.1.41.125 .  {{cite web}}: Falta o está vacío |url=( ayuda )

Enlaces externos