512^2 beyaz boşluklu bir metin dosyasında yazdığım iki boyutlu boşluklarımı Erlang programına yazarak stdin'e aktarıyorum.IO'm neden Erlang'da bu kadar yavaş çalışıyor?
Erlang'da bu 2m25s, eşdeğer bir Haskell programında 3s alır, bu yüzden Erlang yoluna bir şekilde karşı çıkmalıyım.
Erlang'ın IO temel öğelerini aptal bir şekilde mi kullanıyordum yoksa programımda başka bir sorun var mı?
Elde edilen listedeki değerlerin sırasını umursamıyorum, bu yüzden geri işlem yok.
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: herhangi bir yardım için çok
module IOTest (
main
) where
main :: IO()
main = do
text <- getContents
let values = map read (words text) :: [Double]
putStrLn $ show values
return()
teşekkürler.
Ayrıca, Erlang programının tersi olarak sayıların listesini üreteceği anlaşılıyor. – augustss