在给定的lambda演算表达式中获取谓词的代码是什么?
鉴于lambda表达式
(race(x) & run(I2,x))
我知道种族和奔跑都是谓词。
如何在代码或任何给定代码中提取谓词?
答案 0 :(得分:2)
如果您已经在使用NLTK,则可以重复使用它们的解析器(假设您的表达式是字符串):
import nltk
read_expr = nltk.sem.Expression.fromstring
teststr = '(race(x) & run(I2,x))'
parsed = read_expr(teststr)
for p in parsed.predicates():
print(p)