Скажите в блоке do-notation Haskell, я хочу иметь переменную is_root
, указывающую, является ли я root:
import System.Posix.User
main = do
uid <- getRealUserID
is_root <- return $ uid == 0
Эта раздражающая переменная uid
используется только в одном месте. Вместо этого я могу написать следующее:
main = do
is_root <- getRealUserID == 0
Но, конечно, это не скомпилируется.
Как я могу избавиться от лишних переменных, таких как uid
? Здесь лучшее, что я придумал:
import System.Posix.User
main = do
is_root <- getRealUserID >>= return . ((==) 0)
Blech! Есть ли лучший способ?