Информация об изменениях

Сообщение Re[6]: Про типы и логику от 07.02.2015 6:19

Изменено 07.02.2015 8:33 Mamut [ищите в других сетях]

M>>Которые тут же сыпались при простейших вопросах типа «что будет, если ввести хоть одно доп. условие?».

EP>Простой пример нескольких условий
Автор: Evgeny.Panasyuk
Дата: 05.02.15
.



Пример моментально развалился при простейшем вопросе: у нас этих условий не 2, а 12. Будешь делать order_processed_and_prepaid_and_not_risk_and_amount_raise_allowed_and... ?

EP>Скорее ты не хочешь слышать и видеть.


Я все вижу и слышу. Вас почему-то корежит от вопросов

M>>кроме сказок о том, как все с типами будет круто, и «нужно как можно больше логики кодировать на типах».

EP>Не "всё будет круто", а "целые классы ошибок будут ловиться в compile-time".

Я привел простейший пример. Покажи мне, как в нем булет отлавливаться целый класс ошибок.

EP>Во-первых, учитывая то что набор типов не фиксирован, а вычисляется на основе "шаблонов", этого не так уж и мало. Например та же размерность физических величин: разделив метры на секунды, мы получим значение нового типа, с размерностью м/c.

EP>А во-вторых, на типах можно задать какие угодно условия, главное чтобы аргументы условий были доступны compile-time. Например "первый и второй параметр должны иметь одинаковый тип", хотя и не говорится какой; или например целая цепочка условий, а-ля ДНФ.

Имя сестра, имя Примеры, брат, примеры. Я про это и говорю: сплошные сказки про белого бычка. Я привел пример простейшей задачи, которая — ой, ты не поверишь — имеет цепочку условий. Где на практике твое крутое решение, вычисляющее на основе шаблонов и т.п.

Ах да, я забыл. «Это простой опердень, мн ене нравится»


EP>Почему это не нравится? Задача как задача


Так где же решение, которое бы показало все твои истории про типы?

M>>Приведите другую задачу. Но только без hello word'ов, а такую, хоть как-то приближенную к реальности.


EP>Например CAD модели заданные в аффинном пространстве. Если и точки и вектора имеют тип vector, то возможно допустить логические ошибки: попытаться просуммировать точки; или например передать результат суммы векторов туда, где по логике ожидается точка; или же сохранить сумму точки и вектора в вектор.



Короче, понятно. Все сказки про «целые классы ошибок» и «цепочки условий» и «логику» на практике упираются ровно в одно: как бы не сложить метры с киллограммами. Этот «целый класс ошибок» является очень маленьким классом ошибок.
Re[6]: Про типы и логику
M>>Которые тут же сыпались при простейших вопросах типа «что будет, если ввести хоть одно доп. условие?».

EP>Простой пример нескольких условий
Автор: Evgeny.Panasyuk
Дата: 05.02.15
.



Пример моментально развалился при простейшем вопросе: у нас этих условий не 2, а 12. Будешь делать order_processed_and_prepaid_and_not_risk_and_amount_raise_allowed_and... ?

EP>Скорее ты не хочешь слышать и видеть.


Я все вижу и слышу. Вас почему-то корежит от вопросов

M>>кроме сказок о том, как все с типами будет круто, и «нужно как можно больше логики кодировать на типах».

EP>Не "всё будет круто", а "целые классы ошибок будут ловиться в compile-time".

Я привел простейший пример. Покажи мне, как в нем булет отлавливаться целый класс ошибок.

EP>Во-первых, учитывая то что набор типов не фиксирован, а вычисляется на основе "шаблонов", этого не так уж и мало. Например та же размерность физических величин: разделив метры на секунды, мы получим значение нового типа, с размерностью м/c.

EP>А во-вторых, на типах можно задать какие угодно условия, главное чтобы аргументы условий были доступны compile-time. Например "первый и второй параметр должны иметь одинаковый тип", хотя и не говорится какой; или например целая цепочка условий, а-ля ДНФ.

Имя сестра, имя Примеры, брат, примеры. Я про это и говорю: сплошные сказки про белого бычка. Я привел пример простейшей задачи, которая — ой, ты не поверишь — имеет цепочку условий. Где на практике твое крутое решение, вычисляющее на основе шаблонов и т.п.

Ах да, я забыл. «Это простой опердень, мне не нравится»


EP>Почему это не нравится? Задача как задача


Так где же решение, которое бы показало все твои истории про типы?

M>>Приведите другую задачу. Но только без hello word'ов, а такую, хоть как-то приближенную к реальности.


EP>Например CAD модели заданные в аффинном пространстве. Если и точки и вектора имеют тип vector, то возможно допустить логические ошибки: попытаться просуммировать точки; или например передать результат суммы векторов туда, где по логике ожидается точка; или же сохранить сумму точки и вектора в вектор.



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