В чем разница между «вычислить» и «вернуть $!»?

Вот выдержка из документации оценка:

Control.Exception.Base.evaluate :: a -> IO a
оценка x

это не то же самое, что

возврат $! Икс

Правильное определение:

evaluate x = (return $! x) >>= return

(источник)

Кажется, они имеют одно и то же значение. В чем разница между этими двумя определениями?

23
задан Will Ness 17 October 2019 в 13:10
поделиться