[m-users.] Trying out https://github.com/juliensf/mercury-csv
Julien Fischer
jfischer at opturion.com
Tue May 2 14:26:08 AEST 2017
Hi,
On Tue, 2 May 2017, Jovon Tan wrote:
> I'm new to mercury and I'm trying to process CSV data using the package
> https://github.com/juliensf/mercury-csv
>
> The next paragraph is my test code and mmc is giving me this error.
> test_raw_csv.m:034: type error: unsatisfied typeclass constraint:
> test_raw_csv.m:034: `stream.reader(csv.raw_reader(io.input_stream), csv.record, io.state, Error)'
> May I know how I should fix my code? Thanks.
>
> %-----------------------------------------------------------------------------%
> % Program: test_raw_csv.m
> % Purpose: Read CSV content from stdin and print as raw records to stdout.
>
> :- module test_raw_csv.
> :- interface.
> :- import_module io.
> :- pred main(io::di, io::uo) is det.
>
> :- implementation.
>
> :- import_module csv.
> :- import_module stream.
>
> %-----------------------------------------------------------------------------%
>
> main(!IO) :-
> io.stdin_stream(Input, !IO),
> process_csv(Input, !IO).
>
> :- pred process_csv(io.text_input_stream::in, io::di, io::uo) is det.
> process_csv(Input, !IO) :-
> csv.init_raw_reader(Input, Reader, !IO),
> stream.input_stream_fold_state(Reader, writer, _Result, !IO).
>
> :- pred writer(record::in, io::di, io::uo) is det.
The raw CSV reader produces values of type 'raw_record' rather than
'record', so you need ot change the declaration of writer/3 to:
:- pred writer(raw_record, io::d, io::uo) is det.
Cheers,
Julien.
More information about the users
mailing list