有没有办法在没有不便的情况下使用符号表中的语句:
x = do
putStrLn "Enter file name"
fileName <- getLine
putStrLn "Enter file extension"
fileExt <- getLine
doIO $ fileName ++ "." ++ fileExt
doSomeMoreIO $ fileName ++ "." ++ fileExt
拥有where file = fileName ++ "." ++ fileExt
会很高兴。有办法吗?
我想有一种方法是拥有file <- return $ fileName ++ "." ++ fileExt
,但这有点奇怪,因为我将业务逻辑与写作的便利性混合在一起。
答案 0 :(得分:9)
where
,不。 let
,是的:
x = do
putStrLn "Enter file name"
fileName <- getLine
putStrLn "Enter file extension"
fileExt <- getLine
let file = fileName ++ "." ++ fileExt
doIO file
doSomeMoreIO file
答案 1 :(得分:2)
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
是最简单的方法,但另一种选择可能是使用单独的函数:
let
根据具体情况,由于可读性提高,此选项可能更为可取。