Haskell: reading multiple command line arguments
Okay, so I am making a program in Haskell that needs to change certain words based on two command line arguments. I have made the replace function and everything works great, but I am stumped getting it to work with command line arguments.
Here is the main code: (replace function not included)
main = do
text <- getContents
(command1:command2:_) <- getArgs
putStrLn (replace (read command1) (read command2) text)
So for intstance in the terminal I开发者_如何学JAVA want to be able to type something like: "---> cat textfile.txt | ./replace oldword newword"
I know this code is close since I have seen others do it this way. O_o
Thanks for any help
You should really include in your question what kind of error you are getting or what does not work as expected. Just saying "I'm stumped" doesn't give much hints what goes wrong.
So a wild guess: Probably your replace
function takes strings as parameters. Since getArgs
already returns the arguments as strings there is no need to call read
, which would convert these strings to another datatype. Just use the arguments directly:
main = do
text <- getContents
(command1:command2:_) <- getArgs
putStrLn (replace command1 command2 text)
精彩评论