Раздел 45 · Python backend: Тарбадель

Теория типов для инженера

middle-senior~40 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

Странник в мокром плаще поднимает капюшон и уходит вдоль рельсов депо. Он сидел на подножке мёртвого трамвая, когда утром пришла Лорра с планшетом и одним словом: «Подделка». Контракт 0300 Архив не сверял. Кельса нашла ключи от служебного лифта и молча кивнула тебе.

Лифт везёт вас наверх долго, мимо ярусов, где ты ни разу не был. Палата сверки это нижний зал Архива на Ярусах сервисов: длинные столы, стопки контрактов, лампы под зелёными абажурами. На каждом контракте круглая печать «сверено Архивом».

Лорра выкладывает на ближний стол десяток листов, один к одному. На всех печать.

Ты знаешь этот язык: в машинном зале Оракула ты собирал его вычислитель сам (урок 70). Ветка «нет» прибавляет к числу логическое #t, и на ней вычислитель упадёт. Но до неё никто не дошёл: 2 меньше 3, условие истинно, исполнилась ветка «да». Архив проверил одну дорогу из двух и поставил печать на обе.

Чтобы ответить Лорре честно, надо смотреть на текст программы, а не на один её прогон. Это и есть вопрос урока: что можно узнать о программе до запуска, что нельзя, и сколько стоит ошибиться в каждую сторону. К концу урока у тебя будет свой маленький тайпчекер для Lisp-калькулятора, и подделка с ветки «нет» на нём не пройдёт.

урок из курса

Урок из курса «Python backend: Тарбадель». Курс покупается один раз и остаётся навсегда: 500 ₽.

Оплата пока не подключена: премиум и курсы открываются промокодом.