2
當我試圖編譯它時,下面的do塊會拋出錯誤「輸入conn'解析錯誤」。我已經嘗試了許多不同的if-then-else語句的配置,無濟於事。數據庫邏輯在我添加條件之前就工作了,所以這沒有問題。我在其他線路上有太多線路嗎?有沒有什麼辦法可以解決這個問題,而不需要完全修改邏輯?Haskell中的「輸入解析錯誤」if-then-else有條件的
main = do
contents <- BL.getContents
let myData = decode contents :: Maybe Data
if maybe True (\x -> result x /= "success") myData
then error ("JSON download failed")
else let myTrades = process myData
conn <- connectSqlite3 "trades.db"
insert <- DB.prepare conn "INSERT INTO trades VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?);"
DB.executeMany insert $ map (\xs -> map DB.toSql xs) myTrades
DB.commit conn
DB.disconnect conn
有結束了兩個問題。第一個是下面答案中描述的那個; 「其他」之後我需要「做」。此外,最後四行需要縮進與「let」中的「l」相同的列中。 – Mike