![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Напишите представителя класса типов Applicative, для которого выполнялись бы законы Identity и Homomorphism:
UPD. Ну и по ходу дела возникли бонусные вопросы: написать такого представителя, чтобы не выполнялся (a) только Composition; (b) только Interchange.
pure id <*> u = u pure u <*> pure x = pure (u x)но не выполнялся бы законы Composition и/или Interchange:
pure (.) <*> u <*> v <*> x = u <*> (v <*> x) u <*> pure x = pure ($ x) <*> u
UPD. Ну и по ходу дела возникли бонусные вопросы: написать такого представителя, чтобы не выполнялся (a) только Composition; (b) только Interchange.
no subject
Date: 2012-04-19 07:41 pm (UTC)no subject
Date: 2012-04-19 08:06 pm (UTC)no subject
Date: 2012-04-19 08:17 pm (UTC)no subject
Date: 2012-04-19 08:21 pm (UTC)no subject
Date: 2012-04-19 09:13 pm (UTC)http://hpaste.org/67305
Остался последний вариант.
no subject
Date: 2012-04-19 09:33 pm (UTC)http://hpaste.org/67306
no subject
Date: 2012-04-20 10:08 am (UTC)no subject
Date: 2012-04-20 10:20 am (UTC)no subject
Date: 2012-04-20 11:12 am (UTC)no subject
Date: 2012-04-20 11:19 am (UTC)no subject
Date: 2012-04-20 11:37 am (UTC)no subject
Date: 2012-04-20 02:59 pm (UTC)no subject
Date: 2012-04-20 03:38 pm (UTC)Тогда Identity - это то, что rpure является левой единицей для rjoin, Homomorphism - это более узкое свойство rjoin rpure rpure = rpure, Composition - ассоциативность rjoin (при условии, что Identity выполняется), а Interchange - коммутативность.
no subject
Date: 2012-04-20 04:38 pm (UTC)