2012-01-26 3 views
2

Я компиляции этого кода и receving ошибку «ошибка разбора на входе„=“ 'Haskell Ошибка синтаксического анализа error- на входе «=»

import System.IO 
import Data.List.Split 
main = do 
    handle <- openFile "ac/abc" ReadMode 
    contents <- hGetContents handle 
    let xs = splitOneOf "; \n " contents  
    print xs 
    readStrList contents = do 
     print contents 
    hClose handle 

пожалуйста, предложите что неправильно

+0

Что вы пытаетесь выполнить с помощью строки 'readStrList'? – ehird

+0

На самом деле я пытался использовать другой способ рекурсии, так как forM_ требует hoogle.this work.thanks – code4fun

ответ

7

Проблема в этих строках:

readStrList contents = do 
    print contents 

Если вы пытаетесь определить readStrList, то вам нужно поставить let перед:

let readStrList contents = do 
     print contents 
+0

Но это определение ничего не сделает, так как 'contents' будет скрывать внешнее' содержимое', а функция никогда не вызывается. (Не говоря, что вы ошибаетесь, просто я не могу сделать головы или хвосты того, что делает линия, но это, вероятно, не так.) – Chuck

+0

@Chuck: Я предположил, что он предназначен для использования позже блок 'do'. Но я согласен, трудно сказать, что здесь предназначено. – ehird