为什么 `accursedUnutterablePerformIO` 中没有 `seq`?
Why no `seq` in `accursedUnutterablePerformIO`?
为什么要实施 accursedUnutterablePerformIO
(又名 inlinePerformIO
)
accursedUnutterablePerformIO :: IO a -> a
accursedUnutterablePerformIO (IO a) = case a realWorld# of (# _, r #) -> r
而不是
accursedUnutterablePerformIO :: IO a -> a
accursedUnutterablePerformIO (IO a) = case a realWorld# of (# s, r #) -> s `seq` r
?
简单地说,realWorld#
doesn't exist runtime,因此我们无法对其进行任何计算,因此seq
也不会做任何事情。
为什么要实施 accursedUnutterablePerformIO
(又名 inlinePerformIO
)
accursedUnutterablePerformIO :: IO a -> a
accursedUnutterablePerformIO (IO a) = case a realWorld# of (# _, r #) -> r
而不是
accursedUnutterablePerformIO :: IO a -> a
accursedUnutterablePerformIO (IO a) = case a realWorld# of (# s, r #) -> s `seq` r
?
简单地说,realWorld#
doesn't exist runtime,因此我们无法对其进行任何计算,因此seq
也不会做任何事情。