私は自分自身をハスケルに教えることにしました。私はhttp://lisperati.com/haskell/のチュートリアルを見ていますが、これは私が見つけやすい最も簡単なものです。私がしようとしているのは、数字のリストを含むリストファイルの長さを表示するpeople.txtというテキストファイルです。このコードはチュートリアルの内容です。シンプルなHaskellプログラムによって 'パターンの不正な署名'エラーが発生する
import Data.List
type Person = [Int]
main = do
people_text <- readFile "people.txt"
let people :: [Person]
people = read people_text
putStr "Number of people "
putStr (length people_text)
私はrunHaskellがをtutorial03.hs を持つファイルを実行しようとすると、私はこのエラーメッセージXScopedTypeVariablesフラグを使用して
tutorial03.hs:9:13:
Illegal signature in pattern: [Person] people
Use -XScopedTypeVariables to permit it
を取得し、私は
tutorial03.hs:10:17: Not in scope: type variable `people'
を得る誰かが説明してもらえます私が間違ってやっていること。
あなたのインデントです。型シグネチャと 'people'の定義がインデントの同じレベルにあることを確認してください。 – luqui
@luqui - ありがとう..今、それは私に 'パースエラーon input ='を与えます。 – Christopher
インデントでタブとスペースが混ざっていないことを確認してください。 – shang