Сообщение Re[6]: Про типы и логику от 07.02.2015 6:19
Изменено 07.02.2015 8:33 Mamut [ищите в других сетях]
M>>Которые тут же сыпались при простейших вопросах типа «что будет, если ввести хоть одно доп. условие?».
EP>Простой пример нескольких условий
Пример моментально развалился при простейшем вопросе: у нас этих условий не 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, то возможно допустить логические ошибки: попытаться просуммировать точки; или например передать результат суммы векторов туда, где по логике ожидается точка; или же сохранить сумму точки и вектора в вектор.
Короче, понятно. Все сказки про «целые классы ошибок» и «цепочки условий» и «логику» на практике упираются ровно в одно: как бы не сложить метры с киллограммами. Этот «целый класс ошибок» является очень маленьким классом ошибок.
EP>Простой пример нескольких условий
Автор: Evgeny.Panasyuk
Дата: 05.02.15
.Дата: 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>Простой пример нескольких условий
Пример моментально развалился при простейшем вопросе: у нас этих условий не 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, то возможно допустить логические ошибки: попытаться просуммировать точки; или например передать результат суммы векторов туда, где по логике ожидается точка; или же сохранить сумму точки и вектора в вектор.
Короче, понятно. Все сказки про «целые классы ошибок» и «цепочки условий» и «логику» на практике упираются ровно в одно: как бы не сложить метры с киллограммами. Этот «целый класс ошибок» является очень маленьким классом ошибок.
EP>Простой пример нескольких условий
Автор: Evgeny.Panasyuk
Дата: 05.02.15
.Дата: 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, то возможно допустить логические ошибки: попытаться просуммировать точки; или например передать результат суммы векторов туда, где по логике ожидается точка; или же сохранить сумму точки и вектора в вектор.
Короче, понятно. Все сказки про «целые классы ошибок» и «цепочки условий» и «логику» на практике упираются ровно в одно: как бы не сложить метры с киллограммами. Этот «целый класс ошибок» является очень маленьким классом ошибок.