Hi,
I'm writing because of general problem of IO in Erlang.
When I try to load a lot of lines (numbers) form input it takes a lot of time e.g. loading 100 000 lines takes about 50 sec. Most problems on spoj operate on big number of input lines. Does someone (who solve problems in Erlang) know way to load data in Erlang faster? I have tried io:fread/2 and io:read/1 but always loading data takes too much time.
My code with (only) loading data:
-module(prog).
-export([main/0]).
-record(data, {
lines :: [integer()]
}).
main() ->
{ok, [TestNum]} = io:fread( "","~d" ),
_AllLines = load_data(TestNum, #data{lines = []}).
%% Loading data %%
load_data(0, Data) ->
Data;
load_data(TestNum, Data) ->
{ok, [Number]} = io:fread("", "~d"),
load_data(TestNum-1,
#data{lines = lists:append(Data#data.lines, [Number])}).
In general when I was looking for answer I found that loading data in Erlang is slow but maybe someone from spoj know way to load data faster?
Sorry if problem is in wrong category.
Thanks in advance for any help.