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.
Serguey Zefirov <sergueyz@gmail.com> writes:I'm build multi-processes communication program.
> 2010/10/27 Andy Stewart <lazycat.manatee@gmail.com>:
>> 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?
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
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe