Haskell 将匿名条件与IO混合的最简单方法
如何避免像Haskell 将匿名条件与IO混合的最简单方法,haskell,Haskell,如何避免像doesExist=cond这样的样板任务 (putStrLn$path++“存在”) (putStrLn$path++“不存在”) 条件b c a=如果a,则b,否则c LambdaCase适用于以下情况: {-# LANGUAGE LambdaCase #-} import System.Directory import System.Environment main = do path:_ <- getArgs doesDirectoryExist p
doesExist=cond这样的样板任务
(putStrLn$path++“存在”)
(putStrLn$path++“不存在”)
条件b c a=如果a,则b,否则c
LambdaCase
适用于以下情况:
{-# LANGUAGE LambdaCase #-}
import System.Directory
import System.Environment
main = do
path:_ <- getArgs
doesDirectoryExist path >>= \case
True -> putStrLn $ path ++ " Exists"
_ -> putStrLn $ path ++ " Does not exist"
{-#语言LambdaCase}
导入系统目录
导入系统。环境
main=do
路径:\u>=\ case
True->putStrLn$path++“存在”
_->putStrLn$path++“不存在”
或与“如果”相同:
顺便说一句,
cond
是flip bool
如果您导入Data.bool
。
{-# LANGUAGE LambdaCase #-}
import System.Directory
import System.Environment
main = do
path:_ <- getArgs
doesDirectoryExist path >>= \case
True -> putStrLn $ path ++ " Exists"
_ -> putStrLn $ path ++ " Does not exist"
doesDirectoryExist path >>= \x ->
if x then (putStrLn "Exists") else putStrLn ("Does not")