thedeemon: (office)
[personal profile] thedeemon
Уважаемый [livejournal.com profile] thesz написал у себя:
Для чистоты требуется 1) нормальный порядок упрощения (call-by-need или call-by-name, чтобы убрать зависимость от порядка вычисления) и 2) типы, чтобы ++i не пролезло в чистый код.
но, кажется, перепутал чистоту с хаскелем.

Ибо: 1) есть замечательный чистый функциональный язык Idris (даже проверяемо тотальный большей частью), в котором порядок вычислений строгий. Т.е. я бы заметил, что call-by-need требует чистоты, но чистота в общем случае не требует call-by-need.
То, что "есть классы программ, которые в нормальном порядке выразимы, в энергичном нет" - это правда, конечно, но к чистоте отношения не имеет.
Касательно 2) - бестиповое лямбда-исчисление тоже совершенно чистое, и для чистоты своей типов не требует. Чтобы ++i не пролезло в чистый код таки достаточно убрать из языка ++i и другие нечистоты.

Впрочем, без четкого определения чистоты все это довольно бессмысленное жонглирование. В частности, считать ли чистой функцию со свободными переменными.

Date: 2014-09-11 09:29 am (UTC)
From: [identity profile] thesz.livejournal.com
>Придут псы, сделают alter table и вся чудесная статически типизированая прога сдохнет.

И что, есть опыт? И программа на Хаскеле была? Или это художественное преувеличение, как обычно?

Date: 2014-09-11 09:32 am (UTC)
From: [identity profile] metaclass.livejournal.com
Это аргумент [livejournal.com profile] plumqqz против универсальности статических типов, как средства защиты от косяков.

Реально - DBA подкрутит права пользователю на просмотр колонок там или еще что такое - и все накроется в рантайме, если прога при запуске не выводит/проверяет свои типы из метаданных БД.

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

Date: 2014-09-11 09:44 am (UTC)
From: [identity profile] thesz.livejournal.com
"Реально" - это вот откуда такая реальность?

Может ли "полчаса действия пользователя" быть плюсом, feature? Или это всегда и однозначно ошибка?

Date: 2014-09-11 09:54 am (UTC)
From: [identity profile] metaclass.livejournal.com
Спрятать от пользователя колонки, которые ему видеть не надо - в принципе нормальная ситуация, хотя я лично это делаю не на уровне СУБД, а на сервере приложений.

Но крокодилу лучше знать, он вечно с ораклами какими-то работает.

Date: 2014-09-11 10:53 am (UTC)
From: [identity profile] thesz.livejournal.com
Могу ли я уподобить ваши утверждения выше анекдоту про напевание Битлов Мойшей?

Profile

thedeemon: (Default)
Dmitry Popov

February 2026

S M T W T F S
12 34567
891011121314
15161718192021
22232425262728

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 9th, 2026 05:53 am
Powered by Dreamwidth Studios