类型检查与类型推断
Type checking vs type inference
谁能解释一下类型检查和类型推断问题之间的区别?
我曾尝试寻找差异,但找不到任何能清楚解释差异的令人信服的来源。如果可能,还包括示例。
给定代码:
(define (sum lst)
(if (null? lst)
0
(+ (car lst)
(sum (cdr lst)))))
关于 lst
必须是什么或程序 return 类型,您有什么可以说的吗?编译器可能会做同样的事情,这将被称为类型推断。
类型检查是检查代码中指定的类型或推断的类型。如果代码中存在不一致,或者从推断它加起来不清楚,它将失败。
谁能解释一下类型检查和类型推断问题之间的区别?
我曾尝试寻找差异,但找不到任何能清楚解释差异的令人信服的来源。如果可能,还包括示例。
给定代码:
(define (sum lst)
(if (null? lst)
0
(+ (car lst)
(sum (cdr lst)))))
关于 lst
必须是什么或程序 return 类型,您有什么可以说的吗?编译器可能会做同样的事情,这将被称为类型推断。
类型检查是检查代码中指定的类型或推断的类型。如果代码中存在不一致,或者从推断它加起来不清楚,它将失败。