【发布时间】:2022-01-04 11:55:18
【问题描述】:
我正在尝试用双循环构建一个逻辑句子(这样 n 个命题中只有 m 个命题可以为真),但被“|”弄糊涂了令牌。我在 Hoogle 上找不到它的确切含义。 select 给出了一个列表列表,一个可以选择的索引列表。有了索引,我想建立一个积极的“选定”命题和消极的“非选定”命题的结合。下面的代码我做错了什么?
genXorM :: Int -> Int -> Form
genXorM n m = Disj [Conj [Neg $ PrpF $ P x, PrpF $ P y] | z <- select, y <- [0 .. n] \\ z, x <- z] where
select = combinations m [0 .. n]
【问题讨论】:
-
试试
[x*x | x <- [1..10]]。你现在了解|令牌了吗? -
|,在这种情况下,是 list comprehension 语法的一部分,因此您应该搜索它。在其他情况下,它可以用于 guards,因此您也可以查找相关信息。无论哪种情况,它都应该发音为“这样”。
标签: list haskell combinations