Ниже код для проверки типов StaticCharme:Статические проверки типа условными
Мне нужна помощь в определении метода typeConditional (выражение, ENV). Необходимо проверить, что все предикатные выражения оцениваются по логическому значению. Чтобы условное выражение было корректным, последующие выражения каждого предложения производят значения одного и того же типа. Тип условного выражения является типом всех последующих выражений.
У меня уже есть typcheck (выражение, ENV) метод:
def typecheck(expr, env):
if isPrimitive(expr):
return typePrimitive(expr)
elif isConditional(expr):
return typeConditional(expr, env)
elif isLambda(expr):
return typeLambda(expr, env)
elif isDefinition(expr):
typeDefinition(expr, env)
elif isName(expr):
return typeName(expr, env)
elif isApplication(expr):
return typeApplication(expr, env)
else: evalError ("Unknown expression: " + str(expr))
Ваш наиболее насущной необходимостью является использование больше места в вашем отступы –
возможного дубликата [Определение процедуры типаConditional] (http://stackoverflow.com/questions/5791049/defining-a-typeconditional-procedure) –