Watch video

Video tutorial

Id

beginner

English

Id (монада идентичности) должна рассматриваться, как монада, в которую вкладывается эффект отсутствия эффекта. Любое значение может являться значением Id.


import arrow.*
import arrow.core.*

Id("привет")
// Id(value=привет)

Используя данную декларацию мы можем обращаться с нашим конструктором типа Id как с Монадой и как с Комонадой. Метод just, который имеет тип A -> Id<A> просто становится функцией, переводящей аргумент в себя. Метод map от функтора просто становиться применением функции.


val id: Id<Int> = Id.just(3)
id.map { it + 3 }
// Id(value=6)

Поддерживаемые классы типа

Module Type classes
arrow.aql From, Select
arrow.data.extensions StateTFx
arrow.typeclasses Applicative, Bimonad, Comonad, Eq, Foldable, Functor, Hash, Monad, Monoid, Selective, Semigroup, Show, Traverse
arrow.typeclasses.suspended.monad Fx