p
Size: a a a
p
ГС
DS
NL
вскипятитьВоду
должен быть подходящий тип. Но он может быть достаточно общий, чтобы его можно было использовать в других монадах.p
DS
r
DS
p
p
DS
runST (doОчень декларативно, очень ФП
ref <- newSTRef "hello"
x <- readSTRef ref
writeSTRef ref (x ++ "world")
readSTRef ref )
DS
sumST :: Num a => [a] -> a
sumST xs = runST $ do
n <- newSTRef 0
for_ xs $ \x ->
modifySTRef n (+x)
readSTRef n
DS
DS
DS
p
runST (doОчень декларативно, очень ФП
ref <- newSTRef "hello"
x <- readSTRef ref
writeSTRef ref (x ++ "world")
readSTRef ref )
p
DS
DS