- 1
- 2
- 3
- 4
main =do
let b = 56
let b = b+1
print b
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+124
main =do
let b = 56
let b = b+1
print b
Зачем есть возможность задавать переменные с однаковыми именами, если их использовать ниже всё равно нельзя?
http://ideone.com/b1DGYF
Кстати в ocaml поведение данного кода было бы интуитивным (переменная, объявленная в let, вступает в силу только после блока let), а чтобы сделать такой зависон пришлось бы написать let rec.
Точно. Те же парсеры, например. Это must-have фича.
К слову, b - это функция а не переменная.
А вот каррирование, чистоту, автоматическое распараллеливание, функции высшего порядка, алгебраические типы данных, паттерн-матчинг на императивном языке либо вообще не реализуются никак, либо через огромную волосатую жопу.
Оно там и не реализовано. Код на хаскеле кристально чист, и все что он делает - возвращает IO action рантайму. А рантайм, написанный на императивной сишечке делает всю грязную работу связанную с императивным говном.
Не особо нужно. Да и кортежи есть много где.
>чистоту
Вообще не нужно.
>функции высшего порядка
не нужно
>паттерн-матчинг
Да в общем ничего сверхъестественного. Ассоциативного массива всегда хватало.
>автоматическое раssпараллеливание
Ну да, а то дебилы с всякими casами и блокировками мучаются. А парни-то не знают! Можно ведь всё автоматически!!!
Проблема вот в чем. Допустим, у тебя 4 ядра - типично в наше время. Код хацкелиста работает медленней в 3-5 раза.
В большинстве случаев чтобы уделать хацкель assпаралелить просто не нужно.
PS На секономленом электричестве приготовишь себе борщ.
>не нужно
>>паттерн-матчинг
>Да в общем ничего сверхъестественного. Ассоциативного массива всегда хватало.
ко ко ко
С остальным согласен. Впрочем чистота нужна местами. (Атрибут/Аннотация функции, как чистой)
Что нельзя сделать по-быстрому руками, и без чего невозможно писать хороший код (а не те говнопримеры что в Куче).
Можно. Но зачем копаться в говне руками самому, если для этого есть наемные копатели паттерн-матчинг?