him*_*him 4 functional-programming type-inference lambda-calculus typechecking typed-lambda-calculus
谁能解释类型检查和类型推断问题之间的区别?
我试图寻找差异,但我找不到任何令人信服的资料来清楚地解释差异。如果可能的话还包括示例。
给出代码:
(define (sum lst)
(if (null? lst)
0
(+ (car lst)
(sum (cdr lst)))))
Run Code Online (Sandbox Code Playgroud)
lst
关于必须是什么或过程返回类型,您有什么可以说的吗?编译器可能会做同样的事情,这被称为类型推断。
类型检查是检查代码中指定或推断的类型。如果代码中存在不一致,或者无法通过推断得出累加结果不清楚,那么它将失败。