Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Функционалдық бағдарламалауда катаморфизм (көне грекше κατά – "төменге қарай" және μορφή – "форма, пішін") ұғымы бастапқы алгебрадан кез келген басқа алгебраға бірегей гомоморфизмді білдіреді. Катаморфизмдер кездейсоқ алгебралық деректер түрлеріне тізімдерді жинаудың (fold) жалпылануын ұсынады, оларды бастапқы алгебралар деп сипаттауға болады. Дуальдық ұғым – айналмалы процесті (unfold) жалпылайтын анаморфизм. Гиломорфизм – анаморфизм мен катаморфизмнің біріктірілуі.
In functional programming, the concept of catamorphism (from the Ancient Greek: κατά "downwards" and μορφή "form, shape") denotes the unique homomorphism from an initial algebra into some other algebra. Catamorphisms provide generalizations of folds of lists to arbitrary algebraic data types, which can be described as initial algebras. The dual concept is that of anamorphism that generalize unfolds. A hylomorphism is the composition of an anamorphism followed by a catamorphism.
Анықтама
Өз-өзіне қатысты қандай да бір санаттағы кейбір эндофунктордың бастапқы алгебрасын қарастырайық. Мұнда – морфизм бар. Ол бастапқы болғандықтан, егер басқа алгебра болса, яғни – морфизм болса, онда – морфизмінен бірегей гомоморфизм болады. Алгебра санатының анықтамасы бойынша, бұл – морфизміне сәйкес келеді, оны әдетте де белгілейді, және мынадай теңдік орындалады: Алгебра контекстінде, бастапқы объектіден бірегей түрде анықталған морфизм деп белгіленеді және осы қатынас арқылы сипатталады:
Consider an initial algebra for some endofunctor of some category into itself. Here is a morphism from to Since it is initial, we know that whenever is another algebra, i. e. a morphism from to , there is a unique homomorphism from to By the definition of the category of algebra, this corresponds to a morphism from to , conventionally also denoted , such that In the context of algebra, the uniquely specified morphism from the initial object is denoted by and hence characterized by the following relationship:
Терминология және тарих
Әдебиетте тағы бір белгілеу кездеседі: қолданылатын ашық жақшалар "банан жақшалары" деп аталады, осыдан кейін катаморфизмдерді кейде "банан" деп те атайды, бұл туралы Эрик Мейер және авторлар тобы айтқан. Катаморфизм ұғымын бағдарламалау контекстінде енгізген алғашқы жарияланымдардың бірі – Эрик Мейер және авторлар тобының "Бананмен, линзалармен, конверттермен және тікенді сыммен функционалдық бағдарламалау" атты мақаласы болды.
Another notation found in the literature is The open brackets used are known as banana brackets, after which catamorphisms are sometimes referred to as bananas, as mentioned in Erik Meijer et al. One of the first publications to introduce the notion of a catamorphism in the context of programming was the paper “Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire”, by Erik Meijer et al.,
Мысалдар
Біз бірнеше мысалдар келтіреміз, содан кейін Хаскелл бағдарламалау тілінде катамарфизмдерге көбірек бағытталған қарастырамыз.
We give a series of examples, and then a more global approach to catamorphisms, in the Haskell programming language.