I m读512^2白色空间,在我的埃尔兰方案的一份文本档案中写了两字,把两字推到 st。
在埃尔兰,这占用了2m25s,相当于Haskell方案,它耗资3,因此,我必须反对埃尔兰以某种方式这样做。
Am I using Erlang s IO primitives in a stupid way, or is there something else wrong with my program?
请注意,我不关心由此产生的清单中的价值顺序,因此没有发生逆转。
Erlang:
-module(iotest).
-import(io).
-export([main/0]).
main() ->
Values = read(),
io:write(Values).
read() -> read([]).
read(Acc) ->
case io:fread("", "~f") of
{ok, Value} -> read([Value | Acc]);
eof -> Acc
end.
Haskell:
module IOTest (
main
) where
main :: IO ()
main = do
text <- getContents
let values = map read (words text) :: [Double]
putStrLn $ show values
return ()
非常感谢任何帮助。