不知道为什么我得到Haskell&#34; <interactive>:48:1:解析输入错误'./'&#34;使用WinGHCi 1.0.6和

时间:2016-01-09 15:47:12

标签: haskell

我是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

1 个答案:

答案 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