-
Notifications
You must be signed in to change notification settings - Fork 296
Open
Description
Why wasn't a programming language like python/ java used to specify rules?
Instead of (rule $Expr ($PHRASE) (NumberFn))
# function annotations in python can be used to derive mapping from input type to rule
def numberRule(input: Phrase) -> ExpressionDerivation:
return NumberFn(input)
Instead of (rule $Operator (plus) (ConstantFn (lambda y (lambda x (call + (var x) (var y))))))
# function annotations in python can also be used to derive mapping from input string to rule
def plusRule(input: 'plus') -> OperatorDerivation:
span = input.getSpan()
logicalForm = (lambda y (lambda x (call + (var x) (var y)))
return Derivation(span, logicalForm)
Instead of (rule $Partial ($Operator $Expr) (JoinFn forward))
def combine(input1: OperatorDerivation, input2: ExpressionDerivation) -> PartialDerivation:
return JoinFn(forward, input1, input2)
Metadata
Metadata
Assignees
Labels
No labels