Учитывая код:
(define (sum lst)
(if (null? lst)
0
(+ (car lst)
(sum (cdr lst)))))
Есть ли что-нибудь, что вы могли бы сказать о том, что должно быть lst
или какие процедуры возвращают тип?Компилятор может сделать то же самое, и это будет называться выводом типа.
Проверка типов - это проверка типов, указанных в коде или предполагаемых.Он потерпит неудачу, если в коде есть несоответствия или неясно, что он складывается.