Paramorphism

http://dbpedia.org/resource/Paramorphism an entity of type: Software

Le paramorphisme (du Grec: παρά- = vers le haut; morphisme = forme) est un concept de la programmation fonctionnelle fondé sur la théorie des catégories. C'est une extension de la notion de catamorphisme. rdf:langString
In formal methods of computer science, a paramorphism (from Greek παρά, meaning "close together") is an extension of the concept of catamorphism first introduced by Lambert Meertens to deal with a form which “eats its argument and keeps it too”, as exemplified by the factorial function. Its categorical dual is the apomorphism. It is a more convenient version of catamorphism in that it gives the combining step function immediate access not only to the result value recursively computed from each recursive subobject, but the original subobject itself as well. rdf:langString
rdf:langString Paramorphisme
rdf:langString Paramorphism
xsd:integer 12248054
xsd:integer 1092195434
rdf:langString Le paramorphisme (du Grec: παρά- = vers le haut; morphisme = forme) est un concept de la programmation fonctionnelle fondé sur la théorie des catégories. C'est une extension de la notion de catamorphisme.
rdf:langString In formal methods of computer science, a paramorphism (from Greek παρά, meaning "close together") is an extension of the concept of catamorphism first introduced by Lambert Meertens to deal with a form which “eats its argument and keeps it too”, as exemplified by the factorial function. Its categorical dual is the apomorphism. It is a more convenient version of catamorphism in that it gives the combining step function immediate access not only to the result value recursively computed from each recursive subobject, but the original subobject itself as well. Example Haskell implementation, for lists: cata :: (a -> b -> b) -> b -> [a] -> bpara :: (a -> ([a], b) -> b) -> b -> [a] -> bana :: (b -> (a, b)) -> b -> [a]apo :: (b -> (a, Either [a] b)) -> b -> [a]cata f b (a:as) = f a (cata f b as)cata _ b [] = bpara f b (a:as) = f a (as, para f b as)para _ b [] = bana u b = case u b of (a, b') -> a : ana u b'apo u b = case u b of (a, Right b') -> a : apo u b' (a, Left as) -> a : as
xsd:nonNegativeInteger 2985

data from the linked data cloud