2016-04-13 20 views
2

Kodum GHCi çalışır, ama cabal build ile proje oluşturmaya çalıştığınızda, bunun parse error on input ‘<-’Cabal inşa ayrıştırma hatası verir ama kod GHCi

İşte minimal örnek hata veriyor ince işler:

foo :: IO() 
foo = do 
    let x = do 
     b <- getLine 
     return b 
    return() 
+3

Herhangi bir sekme kullanmadığınızdan emin misiniz? Yasak değiller, ama tahmin edilemez şeyler yapabilirler. –

+1

pasaj, kopyalandığı ve yeni bir dosyaya yapıştırıldığı gibi bildirildiği gibi çalışır - btw: x'in hiçbir şey yapamayacağının farkında mısınız? – Carsten

+0

Bunu çözdüm! Cevabımı gör. @PaulJohnson'un sekmesi yok. –

cevap

2

benim GHCi komutu :show language

base language is: Haskell2010 
with the following modifiers: 
    -XNoDatatypeContexts 
    -XNondecreasingIndentation 
görülebilir -XNondecreasingIndentation uzantısını kullanmak üzere ayarlandı çıkıyor bu uzantı olmadan

kötü sözdizimi:

foo :: IO() 
foo = do 
    let x = do 
     b <- getLine 
     return b 
    return() 

ama bu tamam:

foo :: IO() 
foo = do 
    let 
     x = do 
      b <- getLine 
      return b 
    return() 

eğer sorunu çözmek .cabal dosyaya

default-extensions: 
    NondecreasingIndentation 

ekleyebilir veya etmek Sadece bu birime {-# language NondecreasingIndentation #-}'u eklemeyi tercih edersiniz. Alternatif olarak, kodu yukarıdaki gibi yeniden biçimlendirin veya Haskell2010 yerine Haskell98'i kullanın.