Здравствуйте, Mr.Cat, Вы писали:
MC>Здравствуйте, thesz, Вы писали: T>>Потому, что Лисп не даёт практики структурирования решений в определённых логиках. MC>Было бы интересно послушать этот тезис в развернутом виде.
Всё очень просто.
Скажи, какая логика находится в основании лиспа. Можно ли в ней выразить противоречие каким-либо образом?
MC>Пока для меня очевидно только то, что лисп не дает практики реализации решений на чистых ленивых строго типизированных ФЯ (что, надо признаться, в некотором роде недостаток, если будущее программирования действительно за зависимыми типами и подобной магией).
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Здравствуйте, thesz, Вы писали: T>Скажи, какая логика находится в основании лиспа. Можно ли в ней выразить противоречие каким-либо образом?
Ты сечас про конструктивную логику? Тогда прямой аналог противоречия — исключение.
Потому как, емнип, наличие на руках доказательства этого самого боттома — должно рассматриваться повод завершить вычисления к чертовой матери, попутно породив доказательство произвольного утверждения (ака throw some_value). Не?
Здравствуйте, thesz, Вы писали: T>Это схему-то? В которой, как мне показали на RSDN, возможны любые побочные эффекты и даже изменение значения?
Ну да, а еще схемеры едят детей.
То, что хаскель — надмножество турбобейсика не делает его императивным. Аналогично и схема вполне себе располагает к фп, вопреки наличию на клавиатуре восклицательно знака.
Здравствуйте, thesz, Вы писали:
AVK>>Что означает что умение программировать ортогонально парадигмам.
T>Увы.
Кому как.
T>Это означает, что "умение программировать" сводится к применению набора приёмов.
В том числе, но полностью не сводится. Помимо этого, как и в большинстве профессий, требуется еще определенная тренировка рабочего органа, определенные навыки и опыт.
T>Если оно доказуемо не распространяется не то, что на другие парадигмы, а даже просто на другие алгоритмы.
Смысл фразы дешифровать не смог.
... << RSDN@Home 1.2.0 alpha 4 rev. 1260 on Windows 7 6.1.7600.0>>
Здравствуйте, Mr.Cat, Вы писали:
MC>Здравствуйте, thesz, Вы писали: T>>Скажи, какая логика находится в основании лиспа. Можно ли в ней выразить противоречие каким-либо образом? MC>Ты сечас про конструктивную логику?
Их много. Ты про какую?
Лично мне была интересна логика в основе Лиспа.
MC>Тогда прямой аналог противоречия — исключение. MC>Потому как, емнип, наличие на руках доказательства этого самого боттома — должно рассматриваться повод завершить вычисления к чертовой матери, попутно породив доказательство произвольного утверждения (ака throw some_value). Не?
Bottom — это и не завершимость тоже. Циклический вызов функциями друг друга в бесконечном цикле — тоже bottom. А порождения throw some_value не даёт.
Так что с логикой у Лиспа так себе. Ничему-то он не учит.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, thesz, Вы писали:
AVK>>>Что означает что умение программировать ортогонально парадигмам. T>>Увы. AVK>Кому как.
Это я к тому, что ты неправ.
Оба твои выбора говорят, что "умение программировать" ограничено подмножеством доступного в какой-то парадигме.
Вот если бы ты в обеих случаях сказал "нет", а потом привёл в пример меня, как освоившего императивную и функциональную парадигму и поэтому умеющего программировать, тогда бы ты был прав. Ну, или если я неприятен, то deniok, или lomeo, или vshabannov.
А так, как есть — увы. Ты неправ.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Здравствуйте, Mr.Cat, Вы писали:
MC>Здравствуйте, thesz, Вы писали: T>>Это схему-то? В которой, как мне показали на RSDN, возможны любые побочные эффекты и даже изменение значения? MC>Ну да, а еще схемеры едят детей. MC>То, что хаскель — надмножество турбобейсика не делает его императивным. Аналогично и схема вполне себе располагает к фп, вопреки наличию на клавиатуре восклицательно знака.
Она располагает к использованию замыканий, а не ФП.
Если расшифровывать ФП, как функциональное программирование, а функциональное программирование определять, как программирование в терминах вычислений функций, где функция имеет такой же смысл, как и в математике — результат её вычислений зависит только от её аргументов.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Здравствуйте, thesz, Вы писали:
AVK>>>>Что означает что умение программировать ортогонально парадигмам. T>>>Увы. AVK>>Кому как.
T>Это я к тому, что ты неправ.
А я к тому, что это сугубо твое субъективное видение.
T>Оба твои выбора говорят, что "умение программировать" ограничено подмножеством доступного в какой-то парадигме.
Нет, не говорят. Я тебе еще раз повторяю — умение программировать в основном альтернативно знанию той или иной парадигмы. Умение программировать это прежде всего умение мыслить абстрактно и при этом предельно формально, умение удерживать в голове и оптимизировать там же сложные и большие по объему логические структуры и т.д.
T>Вот если бы ты в обеих случаях сказал "нет", а потом привёл в пример меня, как освоившего императивную и функциональную парадигму и поэтому умеющего программировать, тогда бы ты был прав.
Ну то есть как не поверни, а ты все равно прав. Это называется софистикой. В данном конкретном случае твой прием называется ложная альтернатива.
T>А так, как есть — увы. Ты неправ.
Увы, но не прав ты.
... << RSDN@Home 1.2.0 alpha 4 rev. 1260 on Windows 7 6.1.7600.0>>
Здравствуйте, thesz, Вы писали: T>Если расшифровывать ФП, как функциональное программирование, а функциональное программирование определять, как программирование в терминах вычислений функций, где функция имеет такой же смысл, как и в математике — результат её вычислений зависит только от её аргументов.
Если использовать это определение, то в разряд функциональных, конечно, попадут только те языки, которые позволяют функциям взаимодействовать со внешним миром, формально оставаясь чистыми. А если не использовать — ... ну ты понял Впрочем, спорить на тему "что называть ФП" мне в лом.
Здравствуйте, thesz, Вы писали: MC>>Ты сечас про конструктивную логику? T>Их много. Ты про какую?
Не суть. Просто убеждаюсь, что под "логикой " ты имеешь в виду некоторую систему, в которой можно формулировать утверждения и приводить их конструктивные доказательства в виде программ.
T>Bottom — это и не завершимость тоже. Циклический вызов функциями друг друга в бесконечном цикле — тоже bottom. А порождения throw some_value не даёт.
Изначально мы говорили о противоречии. А незавершающиеся вычисления противоречием не являются. Противоречие — это когда мы доказали что-то чего доказать не должны были.
E>>И автомат Калашникова MS>Его как раз учить не надо — он прост. Там надо руку тренировать.
Впрочем, подумалось мне, отвечая себе, что и матан — это по сути то же, что и Калаш освоить. Чтобы освоить матан (не весь, а в некой области) — нужна чисто тренировка. Чтобы освоить автомат Калашникова — тоже. Просто одна — мозговая, а другая — моторная. Но если вдуматься, то и матан — чисто моторная тренировка, только для моза а не руки. И в каком-то смысле Калаш стоит выше матана, потому что для Калаша надо обладать навыками и физическими и умственными. Для матана — только умстсвенными.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Здравствуйте, thesz, Вы писали:
T>Типичный пример: человек умеет пользоваться STL, круто пишет с её помощью, но сам сделать сбалансированное дерево не может. T>Он умеет программировать?
IMHO, всё ещё хуже. Всё-таки умение программировать -- это умение приемлемо решать ЕЩЁ НЕ РЕШЁННЫЕ задачи, а не умение воспроизводить уже известные решения. Так что умение написать сбалансированное дерево самостоятельно это либо слишком мало (если умеешь, потому, что прочитал как это сделать), либо слишком много (если предполагается, что ты можешь все структуры данных с нуля родить)
T>Человек отлично знает, как программировать на C#. Способен справится с любой задачей (как он считает). На Хаскеле что-либо делать стремается. T>Он умеет программировать?
IMHO, это вообще к умению программировать отношения не имеет никакого
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, McSeem2, Вы писали:
MS>Его как раз учить не надо — он прост. Там надо руку тренировать.
Ты так пишешь, словно матан сложен
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Mr.Cat, Вы писали:
MC>Здравствуйте, thesz, Вы писали: T>>Если расшифровывать ФП, как функциональное программирование, а функциональное программирование определять, как программирование в терминах вычислений функций, где функция имеет такой же смысл, как и в математике — результат её вычислений зависит только от её аргументов. MC>Если использовать это определение, то в разряд функциональных, конечно, попадут только те языки, которые позволяют функциям взаимодействовать со внешним миром, формально оставаясь чистыми. А если не использовать — ... ну ты понял Впрочем, спорить на тему "что называть ФП" мне в лом.
Вот я и говорю: Схема и Лиспы способствуют императивному программированию с использованием ФВП и метапрограммирования.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Здравствуйте, Mr.Cat, Вы писали:
T>>Bottom — это и не завершимость тоже. Циклический вызов функциями друг друга в бесконечном цикле — тоже bottom. А порождения throw some_value не даёт. MC>Изначально мы говорили о противоречии. А незавершающиеся вычисления противоречием не являются. Противоречие — это когда мы доказали что-то чего доказать не должны были.
Это и есть противоречие.
Так что Лисп ничему не учит.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Здравствуйте, Erop, Вы писали:
E>Здравствуйте, thesz, Вы писали:
T>>Типичный пример: человек умеет пользоваться STL, круто пишет с её помощью, но сам сделать сбалансированное дерево не может. T>>Он умеет программировать? E>IMHO, всё ещё хуже. Всё-таки умение программировать -- это умение приемлемо решать ЕЩЁ НЕ РЕШЁННЫЕ задачи, а не умение воспроизводить уже известные решения. Так что умение написать сбалансированное дерево самостоятельно это либо слишком мало (если умеешь, потому, что прочитал как это сделать), либо слишком много (если предполагается, что ты можешь все структуры данных с нуля родить)
ЕЩЁ НЕ РЕШЁННЫЕ задачи можно решать в комбинационном стиле, используя известные приёмы. Комбинируя структуры данных из STL, например.
Особенно с учётом оценки "приемлемо".
T>>Человек отлично знает, как программировать на C#. Способен справится с любой задачей (как он считает). На Хаскеле что-либо делать стремается. T>>Он умеет программировать? E>IMHO, это вообще к умению программировать отношения не имеет никакого
Почему не имеет отношения? Ты сам себе противоречишь.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)
Здравствуйте, AndrewVK, Вы писали:
AVK>>>>>Что означает что умение программировать ортогонально парадигмам. T>>>>Увы. AVK>>>Кому как. T>>Это я к тому, что ты неправ. AVK>А я к тому, что это сугубо твое субъективное видение.
Это моё объективное опровержение чьего-то ещё (выше по ветке) сугубо субъективного видения.
T>>Оба твои выбора говорят, что "умение программировать" ограничено подмножеством доступного в какой-то парадигме. AVK>Нет, не говорят. Я тебе еще раз повторяю — умение программировать в основном альтернативно знанию той или иной парадигмы. Умение программировать это прежде всего умение мыслить абстрактно и при этом предельно формально, умение удерживать в голове и оптимизировать там же сложные и большие по объему логические структуры и т.д.
То, что ты называешь "умением программировать" (если принять в расчёт твои ответы "да" выше, а не только твои высказывания тут и выше), называется умением комбинировать известные решения.
T>>Вот если бы ты в обеих случаях сказал "нет", а потом привёл в пример меня, как освоившего императивную и функциональную парадигму и поэтому умеющего программировать, тогда бы ты был прав. AVK>Ну то есть как не поверни, а ты все равно прав. Это называется софистикой. В данном конкретном случае твой прием называется ложная альтернатива.
Ещё раз повторю.
Ты не прав потому, что в твоих рассуждениях есть противоречие. С одной стороны ты говоришь, что умение программировать не зависит от парадигмы, а с другой стороны признаешь за не умеющими пользоваться более, чем одной парадигмой (более, чем одним средством внутри парадигмы) умение программировать.
Если умение программировать не зависит от парадигмы, то умеющий программировать перескакивал бы с одной парадигмы на другую без проблем, начиная программировать в очередной через пару недель изучения. Независимые сущности не оказывают влияния друг на друга.
Чего мы не наблюдаем практически ни у кого.
Так что, либо умение программировать зависит-таки от парадигмы (от набора известных инструментов), либо практически никто не умеет программировать.
Или по другому: либо умение программировать условно (содержит условия, в которых кто-то умеет программировать), либо безусловно и не существует в природе.
T>>А так, как есть — увы. Ты неправ. AVK> Увы, но не прав ты.
Не рекомендую.
Yours truly, Serguey Zefirov (thesz NA mail TOCHKA ru)