gpt4 book ai didi

haskell - Haskell 中的 "parse error on input"if-then-else 条件

转载 作者:行者123 更新时间:2023-12-02 05:02:29 25 4
gpt4 key购买 nike

以下 do block 在我尝试编译时抛出错误“输入 `conn' 时出现解析错误”。我已经尝试了 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

最佳答案

你需要像这样在 else 之后引入一个 do block :

  else do 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

关于haskell - Haskell 中的 "parse error on input"if-then-else 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16846584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com