Обсуждение участника:Arachnelis/Сусек: различия между версиями

Содержимое удалено Содержимое добавлено
дополнение
Строка 3:
* Друзья, помогите разрулить спор! Статья [[переменная типа]]. Спор чисто лингвистический - как перевести термин. О переменных типа разные источники говорят "''type variable ranges over the set of all...''". Буквально это переводится как "''переменная варьируется над множеством всех...''". Однако, слово "''варьируется''" неудобно для произнесения и вообще варваризм (а я их не люблю и стараюсь избегать по возможности). И я использовал другой вариант: многие русские источники о математических переменных говорят "''переменная пробегает множество всех...''". Во всех контекстах, кроме "''type variables''" с этим никогда не было никаких проблем. Но когда я использовал этот вариант в статье [[переменная типа]], то участник Tucvbif встретил этот вариант в штыки ([[Обсуждение участника:Tucvbif#переменная|вот очень длинный спор с ним]]). Не подтвердив свою позицию {{nobr|ни единым (!)}} источником, он утверждает, что вариант "''пробегает''" здесь категорически не применим, ибо, по его мнению, это означает чисто императивный случай использования переменной с состоянием - когда множество чётко определено, конечно, дискретно, и переменная последовательно принимает все значения из него. Однако, переменные типа - это математические переменные (буквально, согласно АИ), они определяются над бесконечными множествами, при их компиляции используются ''не все'' возможные их значения, а сами значения принимаются не последовательным перебором, а просто независимыми инстансами. Он игнорирует, что "''set of ALL...''" вольно мелькает в самых разных контекстах. На основании своего субъективного мнения Tucvbif неотступно требует отказаться от варианта "''пробегает''", т.е. использовать варианты либо "''варьируется''", либо вообще "''может принимать значения из...''" (что крайне не удобно и не универсально - эту формулировку придётся хитро адаптировать под каждое предложение). Термин используется и в других статьях, хотя их он пока вроде не портил. Русских источников по ФП и параметрическому полиморфизму, как вы все знаете, раз-два-и-обчёлся, а те, что есть, пользуются лишь теми словами, что им потребовались по содержанию (например, у Пирса переменные типа вводятся под другим углом, и он на помощь таким образом не приходит). Мне не удалось ткнуть пальцем в какой-то Авторитетный Перевод Авторитетного Англоязычного Источника, который бы однозначно склонил чашу весов в его или мою сторону. Но мне небезразлично, чтобы подбираемые по ФП эквиваленты были столь же гибки в использовании, как и английские слова - а там бывают очень неожиданные повороты из-за гибкости самой парадигмы (вспомните хоть "''[[futures and promises|future type module]]''"). '''Задача:''' подобрать набор английских, русских и переводных источников, который бы доказывал допустимость моего перевода, подвести соответствующий итог в обсуждении статьи и вернуть определение в самой статье на место. [[У:Arachnelis|Arachnelis]] ([[ОУ:Arachnelis|обс.]]) 00:44, 8 июня 2017 (UTC)
:* Вообще-то это именно вы мыслите не просто «императивно», а на уровне ассемблера, судя по вашим попыткам приплести к функциональному программированию ячейки памяти. И вы, кстати, тоже не привели в поддержку своего мнения ни одного источника, точнее приводили, но совершенно ничего по теме. И слово «варьируется» здесь тоже не подходит, потому что варьироваться — означает движение.--[[У:Tucvbif|Tucvbif]]<span style="display:inline-block;font-size:0.7em;vertical-align:text-top;text-align:center;line-height:1em;">[[оу:Tucvbif|???]]<br/>[[:commons:user:Tucvbif|*]]</span> 12:18, 24 июня 2017 (UTC)
::* Так я и прошу помочь в поиске источников. Требуется хотя бы один (больше - лучше) чисто математический источник (по любому разделу, но желательно из дискретки), отождествляющий перевод "range over" с "пробегает"; и слово "математика" однозначно срастит применимость этого источника к типовым переменным. Что же до чистоты ФП, то это очень распространённое заблуждение, посеянное одним-единственным сообществом - хаскельщиками (смею предполагать, что вы более-менее тесно знакомы только с ним) - что язык якобы только тогда имеет право называться "функциональным", когда он чище, чем яйца у кота. При этом хаскел сам же предоставляет нечистые возможности и, как метко заметил Харпер, делает их использование неизбежным - так что всё это при близком рассмотрении оказывается просто демагогией. На самом деле, SML - очень даже функциональный язык, прямо предоставляющий мутабельные ячейки, и для такого рода языков даже выделили специальный термин - impurely functional. Более того, цитирую Paulson'а: ФП является не "чистым декларативом", а лишь его подмножеством - это по-прежнему ''программирование'': разработчик должен следить за показателями ''эффективности'', т.е. объёма памяти и длительности исполнения. "ML for the working programmer" (очень уважаемая и обширно рекомендуемая книга), с.9-11 (The efficiency of functional programming). В сообществе Хаскела учат забывать о компиляции; MLщики никогда не забывают о проблеме эффективности, но это не значит, что это императив. Среди новых диалектов есть немало и чистых (Manticore, MLPolyR), и полу-чистых, т.е. явно выделяющих функциональное подмножество, чтобы компилятор знал, где можно смело редуцировать, а где надо быть осторожным (1ML, да и модель аппликативных функторов OCaml'а близка к этому). При этом важно, что "чисто функциональное подмножество" есть далеко не у каждого языка (уберите присваивания из Си, и он вообще потеряет Тьюринг-полноту). Так что Хаскельщики сеют ложные стереотипы не хуже С++ников, и с нимиэтими стереотипами надо бороться. Ну а про то, что "''варьироваться — означает движение''" даже спорить лень. Это всё равно что "''диван - означает бездельничать''". [[У:Arachnelis|Arachnelis]] ([[ОУ:Arachnelis|обс.]]) 18:43, 28 июня 2017 (UTC)
 
== ЯП: "ML доминирует в формальной верификации" ==