开发者

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)
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜