sách gpt4 ai đã đi

Haskell:非严格的 bool 运算

In lại 作者:行者123 更新时间:2023-12-04 09:05:30 29 4
mua khóa gpt4 Nike

无论如何在Haskell中定义如下函数?

or True True = True
or True undefined = True
or True False = True
or undefined True = True
or undefined False = undefined
or undefined undefined = undefined
or False True = True
or False undefined = undefined
or False False = False

我目前没有它的用例(尽管我会对它感兴趣),如果可能的话,我只是感兴趣。

1 Câu trả lời

这在标准 Haskell 中是不可能的,但可以通过不安全的技巧来完成,在 lub 中实现。 Conal Elliott 的图书馆。

基本上,您编写两个函数:

orL True _ = True
orL False x = x

orR = flip orL

然后你可以定义 or a b成为 lub (关于“定义”顺序的最小上限) orL a borR a b .

在操作上,它并行运行两个计算并选择第一个成功的,杀死另一个。

即使按照您的建议工作,它也有重要的缺点。首先, lub只有当它的论点一致时才安全(除非底部相等)。如果您采取 lub True False ,结果将是不确定的,从而违反了纯度!其次,在某些情况下,并行运行两个计算的性能开销可能会成为主导(例如,尝试计算大型列表的 foldr or False!)。

关于Haskell:非严格的 bool 运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10951353/

29 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com