2015-03-26 3 views
1

Каким будет код для получения предиката в заданном выражении лямбда-исчисления.Получение предикатов в выражении исчисления лямбда

Учитывая лямбда-выражения

(race(x) & run(I2,x)) 

Я знаю, что гонки и запустить предикаты.

Как извлечь предикаты в коде или в любом коде?

+1

Вы можете посмотреть на [Pyparsing] (https://pyparsing.wikispaces.com/), если вы можете перевести свой «любой заданный код» в грамматику. – jedwards

+0

Я изначально получил выражение лямбда-исчисления и грамматику FCFG, чтобы это помогло? –

ответ

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) 
Смежные вопросы