Являются ли бесплатные монады просто монадами с интерфейсами?

Я читал кое-что материалы в бесплатных монадах и я действительно не думаю, что я намного ближе к реализации, но я думаю, что я ближе к пониманию того, что они из себя представляют!

Учитывая множество вышеупомянутых ресурсов, я понимаю, что бесплатные монады «освобождают» «монаду» (которая является типом данных) от «вычислительной» работы. Другими словами, бесплатные монады предоставляют интерфейс для таких вещей, как join и map, которые клиент будет реализовывать самостоятельно?


person franklin    schedule 30.05.2019    source источник
comment
Free — это прилагательное, означающее, что объект — это минимальный объект со свойствами обсуждаемой структуры. Итак, свободная монада — это самое простое, что есть монада; у него нет никаких других различимых свойств, кроме тех, которые требуются, чтобы быть монадой. Учитывая data Free f r = ..., пока f является функтором, тогда Free f является монадой, без необходимости точного рассмотрения того, что такое f.   -  person chepner    schedule 30.05.2019


Ответы (1)


Другими словами, бесплатные монады предоставляют интерфейс для таких вещей, как объединение и сопоставление, которые клиент будет реализовывать самостоятельно?

В каком-то смысле да. Но я думаю, что лучше сказать это так: «свободная монада предоставляет язык, в то время как ее экземпляры реализуют разные интерпретаторы этого языка».

Монада свободна, потому что она не связана никаким другим образом, кроме как законами монад. Его экземпляры не являются бесплатными, поскольку определенные интерпретации добавляют дополнительные ограничения.

person michid    schedule 03.06.2019