gpt4 book ai didi

haskell - 绑定(bind)链中更平滑的类型注释

转载 作者:行者123 更新时间:2023-12-03 13:22:46 25 4
gpt4 key购买 nike

所以我有这个工作示例(Snap + Postgres):

listBooks :: AppHandler ()
listBooks = do
results <- query_ "select * from books"
writeJSON $ (results :: [Book])

作为一个练习,我试图用 >>= 重写它。运算符,但需要注释类型会破坏美观。我想不出比这更好的了:
query_ "select * from books" >>= return.(\x -> x :: [Book]) >>= writeJSON

还有其他“更顺畅”的方式吗? (最好不指定包装单子(monad)类型)

最佳答案

你可以稍微缩短到

query_ "select * from books" >>= writeJSON . (\x -> x :: [Book])

除此之外,还没有,尽管有计划为快捷语法实现 GHC 扩展
(:: [Book]) = (\x -> x :: [Book])

@duplode's link
似乎它的代码是 3 天前开始编写的,所以应该在下一个 GHC 版本中。

关于haskell - 绑定(bind)链中更平滑的类型注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32320818/

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