就像Graphs 有一个不错的、通用的/通用的 ADT一样。
“真值表”有什么东西吗?我正在尝试从已经实现真值表的项目中找到“类”定义。
如果不是,您将如何设计(通用)真值表 ADT?
更新:正如评论中所建议的,这是我想出的:
- 添加(删除)一行:(添加
TruthTable.add(input,output)
的第一行用于提取输入和输出的长度(以位为单位)。所有后续行添加都将针对此进行验证。)和TruthTable.delete(input)
- 获取给定输入的输出(图像):
TruthTable.output(input)
或TruthTable.image(input)
- 获取所有输入:(
TruthTable.inputs
里程表订购。) - 获取所有输出:(
TruthTable.outputs
根据输入顺序或里程表顺序排序?) - 查看一个表是否完全指定,即对于所有 2 n 个可能的输入,是否指定了一个输出:
TruthTable.completely_specified?
其他专门的操作可以是:
- 检查真值表是否可逆:
TruthTable.invertible?
- 检查两个表是否等价:
TT1 ==? TT2
(我有时希望编程语言允许方法名称以“?”结尾,对于那些返回 a 的方法的名称Bool
)