
Hello all, Now I am trying on a simple translator module. This module needs to translate an input string( this string represent a formula) as follows: (x^2 - 5x + 4=0) /\ (x^3 - 5>0) -> x>3 And I want the output string represent a formula like: (x^2 - 5x + 4=0) /\ (x^3 - 5>0) IMPLIES x>3, i.e, the translator attempt to translate (->) into IMPLIES. If you have ay suggesstions for that kind of problems, please share with me. I appreciate for that. Thanks all for your time. Nguyen,

hiperfume:
Hello all, Now I am trying on a simple translator module. This module needs to translate an input string( this string represent a formula) as follows: (x^2 - 5x + 4=0) /\ (x^3 - 5>0) -> x>3 And I want the output string represent a formula like: (x^2 - 5x + 4=0) /\ (x^3 - 5>0) IMPLIES x>3, i.e, the translator attempt to translate (->) into IMPLIES. If you have ay suggesstions for that kind of problems, please share with me. I appreciate for that. Thanks all for your time. Nguyen,
If that's all you want to do, then something like this: main = interact trans where trans [] = [] trans ('-':'>':xs) = "IMPLIES" ++ trans xs trans (x:xs) = x : trans xs Simple Char problems can usually be solved with pattern matching this way. For more complex problems you'll probably want to write a lexer and parser for your language, and then do transformations on the abstract syntax. Parsec and Alex or Happy are good for this. Cheers, Don
participants (2)
-
dons@cse.unsw.edu.au
-
Huong Nguyen