gpt4 book ai didi

haskell - 如何使用 JavaScript 将语句链接到一个 block 中

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

Sequence (toBlock $ VarDeclAssign "foo" (JBool False)) (Return $ JBool True)

这是我目前唯一能做到的方法。我尝试了 foldlEmptyBlock 有不同的类型,因此它无法构建。

我可以在这里使用 do 表示法或其他东西吗?

最佳答案

查看 the documentation ,问题是 EmptyBlockSequence 的类型是

EmptyBlock :: Block ()   
Sequence :: Block () -> Stmt t -> Block t

大多数语句都是 Stmt () 类型,Return::Expr t -> Stmt t 除外。据我所知,这是为了确保一个 block 中只能有一个 return 语句,并且它必须位于最后。

foldl Sequence EmptyBlock 不适合您的原因是 foldl 的类型为 (a -> b -> a) -> a -> [b] -> a,如果你看第一个参数,很明显,只有选择 t = () 才能使用 Sequence > 这样a = Block ()b = Stmt ()

这意味着您可以使用 foldl 来组合除 Return 之外的所有语句,您必须在末尾手动插入这些语句。希望这不会太不方便。

关于haskell - 如何使用 JavaScript 将语句链接到一个 block 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7994054/

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