类型检查与类型推断

时间:2018-09-30 13:06:09

标签: functional-programming type-inference typechecking lambda-calculus typed-lambda-calculus

谁能解释类型检查类型推断问题之间的区别?

我已经尝试寻找差异,但是我找不到任何令人信服的资料清楚地解释了差异。如果可能,还包括示例。

1 个答案:

答案 0 :(得分:2)

给出代码:

(define (sum lst)
  (if (null? lst)
      0
      (+ (car lst) 
         (sum (cdr lst)))))

关于lst必须是什么,或者过程返回什么类型,您能说什么吗?编译器可能会做同样的事情,这称为类型推断。

类型检查是检查代码中指定或推断出的类型。如果代码中存在不一致或无法推断出其累加,它将失败。