在Scheme中生成真值表

在Scheme中生成真值表,scheme,mit-scheme,truthtable,Scheme,Mit Scheme,Truthtable,规格如下: (truth-table formula) --> truth-table 一个公式是: 真值,即#t或#f 变量,即p,q,r,… (非公式) (和公式1公式2) (或公式1公式2) 真值表是一组行。一行包含一个绑定(it),其中I是真值赋值,即绑定集(pt)I必须是: 一致的 完整的 t由赋值函数V(公式I)生成V定义为: V(t,I)=t V(p,I)=t用于I V((非公式),I)=(非(V(公式I)) V((和公式1公式2),I)=(和V(公式1 I)V(

规格如下:

(truth-table formula) --> truth-table
一个公式是:

  • 真值,即
    #t
    #f
  • 变量,即
    p,q,r,…
  • (非公式)
  • (和公式1公式2)
  • (或公式1公式2)
真值表是一组行。一行包含一个绑定
(it)
,其中
I
是真值赋值,即绑定集
(pt)
<代码>I必须是:

  • 一致的
  • 完整的
t
由赋值函数
V(公式I)
生成<代码>V定义为:

  • V(t,I)=t
  • V(p,I)=t
    用于
    I
  • V((非公式),I)=(非(V(公式I))
  • V((和公式1公式2),I)=(和V(公式1 I)V(公式2 I))
  • V((或公式1公式2),I)=(或V(公式1 I)V(公式2 I))

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

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

到目前为止你试过什么?在StackOverflow中,可以就代码中的具体问题提出具体问题,但您不应该空手而来,期望人们从Scratch中编写所有代码。您还可以展示一个示例真值表吗?还不完全清楚规范的含义。看起来你可以让自己成为一个解释器来做这件事。如果使用lisp语法,则不需要解析器。