我是Haskell的新手,运行下面的Haskell代码,第4章RealWorld Haskell Book并获得
<interactive>:48:1: parse error on input ‘./’
这是我在WinGHCi 1.0.6上执行的
Prelude> :load Interact
[1 of 1] Compiling Main ( Interact.hs, interpreted )
Ok, modules loaded: Main.
*Main> --make Interact
*Main> :load Interact
[1 of 1] Compiling Main ( Interact.hs, interpreted )
Ok, modules loaded: Main.
*Main> ./Interact "infrank.txt" "outfrank.txt"
*<interactive>:48:1: parse error on input ‘./’*
有人可以帮忙吗?因为我试图谷歌周围没有希望
以下是来自RealWorld Haskell第4章的代码
-- file: ch04/Interact.hs
-- Save this in a source file, e.g. Interact.hs
import System.Environment (getArgs)
interactWith function inputFile outputFile = do
input <- readFile inputFile
writeFile outputFile (function input)
main = mainWith myFunction
where mainWith function = do
args <- getArgs
case args of
[input,output] -> interactWith function input output
_ -> putStrLn "error: exactly two arguments needed"
-- replace "id" with the name of our function below
myFunction = id
答案 0 :(得分:5)
我刚看了chapter 4,你似乎在ghci提示符和shell(在Windows情况下是cmd.exe)之间感到困惑。
您必须在shell(对于Unix系统)或Windows中的cmd.exe
中运行此命令:
ghc --make Interact.hs
./Interact "infrank.txt" "outfrank.txt"
这本书似乎也有一些错误,因为他们使用InteractWith
生成一个名为ghc --make InteractWith
的可执行文件,然后使用Interact
代替InteractWith
。