Unless you have a 'real' type for parse sometime during compile time, TH won't be able to generate it. A good rule of thumbs is that if you can't write the code yourself, then you can't get TH to do it either.
/J On 27 October 2010 08:50, Andy Stewart <[email protected]> wrote: > Serguey Zefirov <[email protected]> writes: > > > 2010/10/27 Andy Stewart <[email protected]>: > >> Hi all, > >> > >> I want use TH write some function like below: > >> > >> data DataType = StringT > >> | IntT > >> | CharT > >> > >> parse :: [(String,DataType)] -> (TypeA, TypeB, ... TypeN) > >> > >> Example: > >> > >> parse [("string", StringT), ("001", IntT), ("c", CharT)] > >> > >> will return: > >> > >> ("string", 001, 'c') > >> > >> So how to use TH write 'parse' function? > > > > I think that you should use TH properly, without compiler and logical > errors. > > > > What actually do you want? > I'm build multi-processes communication program. > > Example i have two processes : Client and Server. > > At Client side, i pass [DataType] to Server, example: > > [StringT, IntT, CharT] > > Server will handle "user input" with [DataType] > and return result [String] to Client side, example: > > ["string", "001", "c"] > > Then at Client side, i need parse [String] to get real value: > > ("string", 001, 'c') > > Because, [DataType] have many different case, so i want pass [String] > between processes, and use TH parse result [String] at Client side. > > Thanks, > > -- Andy > _______________________________________________ > Haskell-Cafe mailing list > [email protected] > http://www.haskell.org/mailman/listinfo/haskell-cafe >
_______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
