Արդյո՞ք բոլոր մոնադները մոնոիդ են:
Արդյո՞ք բոլոր մոնադները մոնոիդ են:

Video: Արդյո՞ք բոլոր մոնադները մոնոիդ են:

Video: Արդյո՞ք բոլոր մոնադները մոնոիդ են:
Video: Альтернативный мир с дробовиком ► 3 Прохождение Silent Hill (PS ONE) 2024, Դեկտեմբեր
Anonim

Լավ ասված, թերևս ամենակարճ պատասխանն է մոնադ ուղղակի ա մոնոիդ էնդոֆունկտորների կատեգորիայում: Բավարարված է մոնոիդ աքսիոմներ (i. & ii.), ա մոնադ կարելի է դիտել որպես ա մոնոիդ որը էնդոֆունկտոր է երկու բնական փոխակերպումների հետ միասին։

Այստեղ ի՞նչ է Monad Endofunctor-ը:

Կատեգորիայի տեսությունում՝ մաթեմատիկայի ճյուղ, ա մոնադ (նաև եռակի, եռյակ, ստանդարտ կոնստրուկցիա և հիմնարար կոնստրուկցիա) է ան էնդոֆունկտոր (կատեգորիան ինքն իրեն քարտեզագրող ֆունկցիոներ), երկու բնական փոխակերպումների հետ միասին, որոնք անհրաժեշտ են որոշակի համահունչ պայմանների կատարման համար:

Հետագայում հարցն այն է, թե ինչ է Bifunctor-ը: Ա երկֆունկցիոնալ (հայտնի է նաև որպես երկուական ֆունկցիա) ֆունկցիոներ է, որի տիրույթը արտադրանքի կատեգորիա է։ Այն կարող է դիտվել որպես ֆունկցիոներ երկու փաստարկներում: Hom ֆունկցիան բնական օրինակ է. մի փաստարկում հակասում է, մյուսում՝ կովարիանտ: Բազմաֆունկցիոնալը ֆունկտոր հասկացության ընդհանրացումն է n փոփոխականի:

Հետո ի՞նչ է մոնադը ծրագրավորման մեջ:

Վիքիպեդիայից՝ ֆունկցիոնալ ծրագրավորում , ա մոնադ մի տեսակ վերացական տվյալների տեսակ է, որն օգտագործվում է հաշվարկները ներկայացնելու համար (տիրույթի մոդելի տվյալների փոխարեն): Մոնադներ թույլ տալ ծրագրավորող շղթայական գործողությունները միասին կառուցելու համար խողովակաշար, որտեղ յուրաքանչյուր գործողություն զարդարված է մշակման լրացուցիչ կանոններով, որոնք նախատեսված են մոնադ.

Ի՞նչ է Monad Haskell-ը:

Մեջ Հասկել ա մոնադ ներկայացված է որպես տիպի կոնստրուկտոր (կոչեք այն m), ֆունկցիա, որը կառուցում է այդ տիպի արժեքներ (a -> ma) և ֆունկցիա, որը միավորում է այդ տիպի արժեքները հաշվարկների հետ, որոնք արտադրում են այդ տիպի արժեքներ՝ ստեղծելու համար նոր հաշվարկ: այդ տեսակի արժեքները (ma -> (a -> mb) -> mb):

Խորհուրդ ենք տալիս: