haskell IO中的新线
我无法使用以下代码打印多行输出haskell IO中的新线,haskell,Haskell,我无法使用以下代码打印多行输出 average l = (sum l) / (fromIntegral (length l)) readDoubles s1 s2 = putStr (s1++"\n"++s2) >> do x <- readDoublesHelper; return ("The average is " ++ (show (average x)) ++ " \n
average l = (sum l) / (fromIntegral (length l))
readDoubles s1 s2 = putStr (s1++"\n"++s2) >>
do x <- readDoublesHelper; return ("The average is " ++ (show (average x)) ++ " \n" ++ "The maximum is " ++ (show (maximum x)) ++ "\n" ++ "The minimum is " ++ (show (minimum x)) ++ "\n")
readDoublesHelper = putStr "Enter a number: " >>
do line <- getLine;
if line == "done"
then return [];
else do xs <- (readDoublesHelper)
return ((read line :: Float): xs)
interface = readDoubles "Enter some numbers." "When finished, type ’done’. \n"
但我希望输出像这样打印
The average is 4.5
The maximum is 7.0
The minimum is 2.0
注意“平均值为4.5\n最大值为7.0\n最小值为2.0\n”
实际上未打印
重新格式化readDoubles
:
readDoubles s1 s2=do
putStr(s1++“\n++s2)
x注意“平均值为4.5\n最大值为7.0\n最小值为2.0\n”
实际上未打印
重新格式化readDoubles
:
readDoubles s1 s2=do
putStr(s1++“\n++s2)
x当使用ghc编译器而不是ghci运行时,您可能需要在putStr”之后输入一个数字:
,以便用户在适当的时候看到提示。当使用ghc编译器而不是ghci运行时,您可能需要在putStr”之后输入一个数字:
供用户及时查看提示。
The average is 4.5
The maximum is 7.0
The minimum is 2.0
readDoubles :: String -> String -> IO String