来自Haskell学习者的一个非常简单的问题。我正在通过Yet Another Haskell Tutorial工作,我坚持一个简单的语法练习。下面给出的代码:当我复制并粘贴它(从pdf)然后调整缩进它工作正常,但是当我输入编辑器(在我的情况下是Notepad ++)时,它会抛出以下错误:
Guess.hs:8:9: parse error on input ´hSetBuffering´
我确保我没有混合标签和空格(4个空格),我没有在书中找到拼写错误。我确信这是一个非常简单的错误,所以感谢任何意见。
Nebelhom
以下是代码:
module Main
where
import IO
import Random
main = do
hSetBuffering stdin LineBuffering
num <- randomRIO (1::Int, 100)
putStrLn "I'm thinking of a number between 1 and 100"
doGuessing num
doGuessing num = do
putStrLn "Enter your guess:"
guess <- getLine
let guessNum = read guess
if guessNum < num
then do putStrLn "Too low!"
doGuessing num
else if read guess > num
then do putStrLn "Too high!"
doGuessing num
else do putStrLn "You Win!"
答案 0 :(得分:3)
我没有看到或重现的语法错误:
$ ghci A.hs
GHCi, version 7.0.3: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package ffi-1.0 ... linking ... done.
[1 of 1] Compiling Main ( A.hs, interpreted )
Ok, modules loaded: Main.
这意味着它可能是标签。你在某处插入了一个标签吗?然后使用4个空格进行缩进?标签在Haskell中通常是一个坏主意,因为它们会导致无意识的,无法理解的语法错误。