私はErlangプログラムにテキストファイルで書かれた512^2個の空白で区切られた倍音をstdinにパイプすることで読み込んでいます。私のIOはErlangでどうゆっくり動くのですか?
これは2m25sで、それと同等のHaskellプログラムでは3秒かかるので、何らかの方法でErlangのやり方に反対しなければなりません。
私は愚かな方法でErlangのIOプリミティブを使用していますか、または私のプログラムに何か他の問題がありますか?
結果リスト内の値の順序は気にしないので、逆の操作はしません。
アーラン:
-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.
ハスケル:任意の助けのために非常に多くの
module IOTest (
main
) where
main :: IO()
main = do
text <- getContents
let values = map read (words text) :: [Double]
putStrLn $ show values
return()
感謝。
また、Erlangプログラムが逆の数のリストを生成するように見えます。 – augustss