在Scheme中生成一个真值表

时间:2013-09-24 11:53:50

标签: scheme mit-scheme truthtable

规范如下:

(truth-table formula) --> truth-table

公式为:

  • 真值,即#t#f
  • 变量,即p, q, r, ...
  • (not formula)
  • (and formula1 formula2)
  • (or formula1 formula2)

真值表是一组行。一行包含绑定(I t),其中I是真值赋值,即绑定集(p t)I必须是:

  • 一致
  • 完整

t由估价函数V(formula, I)生成。 V定义为:

  • V(t,I) = t
  • V(p,I) = t代表(p t)
  • 中的约束I
  • V((not formula), I) = (not (V (formula I)))
  • V((and formula1 formula2), I) = (and V(formula1 I) V(formula2 I))
  • V(( or formula1 formula2), I) = (or V(formula1 I) V( formula2 I))

为了在Scheme中实现真值表,可以遵循哪些程序?请注意,公式中可能存在子公式。

1 个答案:

答案 0 :(得分:0)

听起来像是你需要某种解析器。首先从表达式中提取唯一符号,然后将表达式构建为树/嵌套列表形式。然后迭代可能的真值组合以生成真值表。