如果我有一些值A B C,则可以生成所有可能的真值的列表: 输入是[" X"," Y"," Z"] 例如该列表包含8个列表(表格行)
babe-register
有关于如何做到这一点的任何提示吗?
我想为任意数量的变量生成一个真值表。
答案 0 :(得分:3)
你需要的不是真值表而是笛卡尔积。
您可以使用列表推导获得所需内容:[(x,y,z) | x <- [True, False], y <- [True,False], z <- [True,False]]
如果要保留变量名称,可以使用元组:[(x,y,z) | x <- [("X", True), ("X", False)], y <- [("Y", True), ("Y", False)], z <- [("Z", True),("Z", False)]]
答案 1 :(得分:2)
让递归与你同在。如果您有n
变量的真值表,则可以通过将n+1
附加到{{1}的表中,为X
个变量(添加变量(X, True)
)获取一个真值表}}变量,然后附加n
。
(X, False)