Здравствуйте, Mr.Cat, Вы писали:
MC>Угу. Я иногда читаю чужой код и там бывает что-то такое:
MC>MC>какаяТоФункция :: чтоТо -> НеведомаяМонада ЧтоТоЕще
MC> ...
MC>
MC>Соответственно, хочется по минимуму бегать по гуглам и другим частям чужого исходника.
Leksah по Ctrl+double_click показывает тип функции + документацию из исходника + положение в дереве исходников. Оттуда по "go to definition" можно и на собственно исходники посмотреть (если GHC и библиотеки были поставлены с исходниками). Ну и автокомплит и подсветка и даже встроенный дебагер (GHCi) имеется.
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, thesz, Вы писали:
T>>Строгое формальное доказательство соответствия программ спецификации есть?
А>http://krakatoa.lri.fr/
Дорогой Аноним, вы уж и так напортачили, где только могли. Не стоит усугублять негативность отношения к вам ещё одним примером того, как плохо вы читаете комментарии, на которые собрались отвечать.
Чтобы вы поняли, на что надо отвечать: есть ли в
языке Java формальное доказательство соответствия программ спецификации?
Так, чтобы ничего скачивать не пришлось.
Здравствуйте, thesz, Вы писали:
T>Чтобы вы поняли, на что надо отвечать: есть ли в языке Java формальное доказательство соответствия программ спецификации?
T>Так, чтобы ничего скачивать не пришлось.
Как я понял там только написанный на OCaml анализатор Java кода
Здравствуйте, vshabanov, Вы писали:
V>У Хаскелла есть фундаментальное преимущество -- он чистый. Чистота опупительно повышает модульность.
А в лекции 5а SICP
http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/ почему-то утверждается строго противоположное!
Здравствуйте, xonixx, Вы писали:
X>Здравствуйте, vshabanov, Вы писали:
V>>У Хаскелла есть фундаментальное преимущество -- он чистый. Чистота опупительно повышает модульность.
X>А в лекции 5а SICP http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/ почему-то утверждается строго противоположное!
Там утверждается, что чем больше глобальных переменных, тем лучше? Да, если в какой-то вложенный модуль надо передать какой-нить флажок logEnable, то может и стоит сделать его глобальным. Но это лучше вообще сделать через переменную окружения или -DDEBUG=1. Во всех остальных случаях, если алгоритм мутабельный и имеет внешние зависимости, то нельзя их прятать и создавать головную боль при поддержке. А когда язык тебе не позволяет прятать косяки под плющом, то сразу как-то по другому начинаешь проектировать, срубая ненужные зависимости, от чего имеешь феерический выигрыш на поддержке и очень малую цену изменения кода. Т.е. чистота в хаскеле мешает писать мутабельный/неявно связанный говонокод.
Здравствуйте, vshabanov, Вы писали:
V>Здравствуйте, xonixx, Вы писали:
X>>Здравствуйте, vshabanov, Вы писали:
V>>>У Хаскелла есть фундаментальное преимущество -- он чистый. Чистота опупительно повышает модульность.
X>>А в лекции 5а SICP http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/ почему-то утверждается строго противоположное!
V>Там утверждается, что чем больше глобальных переменных, тем лучше?
Нет, если точнее там говорилось ровно следующее
http://mitpress.mit.edu/sicp/full-text/sicp/book/node53.html
(Ctrl-F -> "While the program is still simple, it betrays some painful breaches of modularity")