我如何在Haskell列表上表示“全部”和“存在”?

问题描述 投票:-1回答:1

我正在通过两个列表和一个关系编写函数,并且我想在Haskell中表达一个特定的谓词。下面的示例使用整数列表和相等性,但是我将其概括为列表上的任意二进制关系。在归纳总结之前,我将对此处的特定示例提供有关如何执行此操作的提示。

如果我有以下内容:

l1 = [1,2,3]
l2 = [3,4,5,6]

而且我想有一个谓词如下:

for all elements e2 in l2, there exists an element e1 in l1 such that (e1 = e2)

更一般而言,应该是

for all elements e2 in l2, there exists an element e1 in l1 such that R (e1 e2)

其中R是一些二进制关系。

我将如何在Haskell中写这个谓词?

haskell functional-programming
1个回答
0
投票

以下为我工作。

 and [any (\x -> (m1 == x)) l2 | m1 <- l1]

[由于它也使用列表,所以不能确定这是最佳的编写方法,但是它可以工作。

© www.soinside.com 2019 - 2024. All rights reserved.