我已經採取了http://www.yesodweb.com/book/persistent(概要部分)的代碼的一部分,並試圖將它加載到ghci(v7.6.3,運行在Ubuntu 14.04)。Haskell解析錯誤,當使用DataBase.Persist(可能與使用準引號相關)
import Database.Persist
import Database.Persist.Sqlite
import Database.Persist.TH
share [mkPersist sqlSettings, mkMigrate "migrateAll"]
[persistLowerCase|
Person
name String
age Int Maybe
deriving Show
BlogPost
title String
authorId PersonId
deriving Show
|]
當加載到ghci中,我得到了以下錯誤:
Prelude> :load "/home/gautham/tmp/Test.hs"
[1 of 1] Compiling Main (/home/gautham/tmp/Test.hs, interpreted)
/home/gautham/tmp/Test.hs:7:1:
parse error (possibly incorrect indentation or mismatched brackets)
Failed, modules loaded: none.
Prelude>
這也是以 '人' 就行了。任何想法可能會造成這種情況?我在網上看過幾個例子,並嘗試過幾種縮進的變體,但還沒有能夠得到這個編譯。我認爲這與錯誤地使用準引號有關,但我不確定是什麼?
乾杯 Gautham
謝謝!我看過沒有這些編譯指示的其他代碼示例,並認爲它們只是註釋。它還沒有編譯,但它從解析錯誤中向前移動。我會試着選擇性地啓用這些,一旦我編譯它。 –
@ GauthamGanapathy它們使用與註釋相同的格式,但它們的確是特殊的指令,告訴GHC啓用相應的擴展。您不需要在源文件中包含它們,但是必須通過命令行標誌告訴GHC使用哪些擴展。 – kqr
只是想注意'' - { - #LANGUAGE QuasiQuotes# - }'是我所缺少的。 – sbditto85