ZM
Size: a a a
ZM
I
λ
C
MG
List(List(1,2), List(3,4), List(5))Из каждого списка взять по одному элементу и получить все уникальные комбинации
=>
List(List(1,3,5), List(1,4,5), List(2,3,5), List(2,4,5))
ЮБ
MG
P
P
Oℕ
Oℕ
Oℕ
P
A => F[B]
, а не A => B
.P
P
A => F[B]
, а не A => B
.AS
A => F[B]
, а не A => B
.def updateState(f: St => F[St]): F[St] =
for {
tup <- ref.access
(oldSt, update) = tup
candidate <- f(oldSt)
isSuccessful <- update(candidate)
newSt <- if (isSuccessful) candidate.pure else updateState(f)
} yield newSt
}
f
должна быть идемпотентна. Возможно еще есть какие-то неочевидные проблемы.P
P
true
выставляется.AS