我真的不知道应该从哪里开始解决这个问题。我的任务是编写一个带有两个参数的函数解释:逻辑表达式和解释(每个命题符号赋值为true或false的表)。解释应以字典的形式进行。
逻辑表达式可以是以下之一(而不是其他):
其中一个逻辑常量"true"
或"false"
(应该是这些字符串,不是真和假)
引号内的命题符号,例如"p"
,"q"
,"cat_gone"
["NOT", <logical expression>]
[logical expression 1, "OR", logical expression 2]
[logical expression 1, "AND", logical expression 2]
此逻辑中的无效表达式示例为["cat_asleep", "OR", "door_open", "OR", "cat_gone"]
。
任务是编写一个函数解释,它接受两个参数,一个有效的表达式和一个解释,并在这个特定的解释中给出关于整个表达式是否为真的真相。逻辑常量和表达式应该作为字符串进行管理,因此您需要为布尔操作实现自己的函数。
输入和输出示例
interpret(["door_open", "AND", "cat_gone"],
{"door_open" : "false", "cat_gone" : "true", "cat_asleep" : "true"} )
'false'
interpret(["cat_asleep", "OR", ["NOT", "cat_gone"]],
{"door_open" : "false", "cat_gone" : "true", "cat_asleep" : "true"})
'true'
有人可以向我解释一下我应该在这做什么以及如何处理这个问题?我知道它解释得相当好,但我不理解它。是否有一些视频或指南经历了像这样的问题?