En los métodos formales de la informática , un paramorfismo (del griego παρά , que significa "muy 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 también lo conserva". ”, [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 porque le da a la función de paso combinado 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 , Ya sea [ 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
{{cite web}}
: Falta o está vacío |url=
( ayuda )Explicación sobre StackOverflow: [1], [2], [3]
Blogs: [4]
Charlas: [5]