Просто типизированное лямбда-исчисление

preview_player
Показать описание

Роль типов в языках программирования. Предтермы. Утверждения о типизации. Контексты. Правила типизации по Карри и по Чёрчу. Деревья вывода типов. Свойства типизированного лямбда-исчисления. Связь между системами Карри и Чёрча. Проблемы разрешимости. Сильная и слабая нормализация. Соответствие Карри-Говарда.

Лекция №3 в курсе "Функциональное программирование" (весна 2015).
Преподаватель курса: Денис Николаевич Москвин.
Рекомендации по теме
Комментарии
Автор

клевые лекции, спасибо, с пользой провёл время

vyorkin
Автор

Парень с облегченным "спасибо" на 1:23:07 наверно просто хотел научиться делать сайты...

kirillerofeev
Автор

Я не совсем уловил фундаментальной разницы между типизацией Карри и Чёрча.

1) Например,  1:18:16, в чём разница между утверждениями:
- Для Карри: То есть для *любых* α, β ∈ T верно ⊢ (λxy.x):α→β→α
- Для Чёрча: То есть для *каждых* α, β ∈ T верноα.λβ
Разве "любых" и "каждых" не обозначают одно и то же, то есть, всеобщность? Я понял, что для Карри, мы сами придумали (контекст) x:α, y:β, в то время, как для Чёрча, это указано в терме. Но в чём разница между следствием в таком случае?

2) На сайте lispcast, я нашёл статью "Church vs Curry types" под авторством Eric Normand, где он, в частности, утверждает, что Haskell использует типизацию Чёрча (напрямую противореча написанному на 15:53), так как система типов является частью семантики этого языка и программа получает значение ещё до исполнения в runtime. Разве система типов не относится к синтаксису, согласно определению на 1:00? И как понять, что это лекция и эта статья относят Haskell в противоположные системы типизации?

evergreen-
Автор

Не хотелось бы показать тупым, но зачем это так глубоко изучать как связь систем Карри и Черча, если Haskell и так задает тип.

alekszmaalmen
Автор

Отстой. Понятно только тому, кому это было понятно до лекции. Вместо определения понятия "тип" даётся определение понятия "система типов". И далее в этом же духе.Это нормально?

mbfymxp