-1

さて、私はHaskellで、2つのコマンドライン引数に基づいて特定の単語を変更する必要があるプログラムを作成しています。私はreplace関数を作成し、すべてがうまく機能しましたが、コマンドライン引数で機能させるのに困惑しています。

メインコードは次のとおりです:(置換機能は含まれていません)

main = do 

text <- getContents

(command1:command2:_) <- getArgs
putStrLn (replace (read command1) (read command2) text)

したがって、ターミナルでのインスタンスとして、次のように入力できるようにします。 "---> cat textfile.txt | ./replace oldword newword"

私は他の人がこのようにそれをしているのを見たので、このコードが近いことを知っています。O_o

助けてくれてありがとう

4

1 に答える 1

10

どのような種類のエラーが発生しているのか、または何が期待どおりに機能しないのかを質問に含める必要があります。「困惑している」と言うだけでは、何がうまくいかないのかについてのヒントはあまり得られません。

したがって、大雑把な推測です。おそらく、replace関数は文字列をパラメーターとして受け取ります。すでに引数を文字列として返しているため、これらの文字列を別のデータ型に変換するgetArgsを呼び出す必要はありません。read引数を直接使用するだけです:

main = do 
    text <- getContents

    (command1:command2:_) <- getArgs
    putStrLn (replace command1 command2 text)
于 2010-03-19T12:15:47.660 に答える