E
Size: a a a
E
DF
G
DF
DF
А⚙
def stateMonad[S]: Monad[State[S, ?]] = {раст: https://play.rust-lang.org/?version=nightly&mode=debug&edition=2018&gist=47674d68fc881db41fa44153257b521f
type StateS[A] = State[S, A]
new Monad[StateS] {
override def unit[A](a: => A): StateS[A] =
State(s => (a, s))
override def flatMap[A, B](f: StateS[A])(g: A => StateS[B]): StateS[B] =
State[S, B](
s1 => {
val (a, s2) = f.run(s1)
g(a).run(s2)
}
)
}
}
А⚙
#[lang_item]
G
DF
DF
E
DF
DF
DF
E
DF
E
А⚙
А⚙