如果我有一个返回的函数IO Bool
(特别是一个atomically
),有没有办法直接在if
语句中使用返回值,而不用绑定?
所以目前我有
ok <- atomically $ do
...
if (ok) then do
...
else do
...
有没有可能把它写成类似的东西
if (*some_operator_here* atomically $ do
...) then do
...
else do
...
我希望有一种方法可以<-
匿名使用,即,if (<- atomically ...)
但到目前为止还没有这样的运气。
同样在 getLine 上,是否可以编写类似的东西
if ((*operator* getLine) == "1234") then do ...
相关附录—— 的类型是(<-)
什么?我无法让它出现在 ghci 中。我假设它是m a -> a
,但这意味着它可以在 monad 之外使用以逃避该 monad,这将是不安全的,对吗?(<-)
根本就不是一个函数吗?