- 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
bormand 09.11.2012 11:24 # 0
3.14159265 12.11.2012 15:42 # +3
bormand 12.11.2012 16:06 # +1
bormand 09.11.2012 11:31 # +3
Кстати в ocaml поведение данного кода было бы интуитивным (переменная, объявленная в let, вступает в силу только после блока let), а чтобы сделать такой зависон пришлось бы написать let rec.
roman-kashitsyn 09.11.2012 11:55 # +1
Точно. Те же парсеры, например. Это must-have фича.
LispGovno 06.12.2013 22:19 # 0
bormand 06.12.2013 22:22 # +1
TarasB 09.11.2012 11:42 # +3
bormand 09.11.2012 11:45 # +11
guest 09.11.2012 16:52 # +2
Fai 09.11.2012 17:37 # +3
К слову, b - это функция а не переменная.
guest 10.11.2012 07:45 # +3
bormand 10.11.2012 08:57 # +5
Fai 10.11.2012 11:54 # +3
А вот каррирование, чистоту, автоматическое распараллеливание, функции высшего порядка, алгебраические типы данных, паттерн-матчинг на императивном языке либо вообще не реализуются никак, либо через огромную волосатую жопу.
bormand 10.11.2012 11:57 # +4
Оно там и не реализовано. Код на хаскеле кристально чист, и все что он делает - возвращает IO action рантайму. А рантайм, написанный на императивной сишечке делает всю грязную работу связанную с императивным говном.
3.14159265 12.11.2012 12:29 # +2
Не особо нужно. Да и кортежи есть много где.
>чистоту
Вообще не нужно.
>функции высшего порядка
не нужно
>паттерн-матчинг
Да в общем ничего сверхъестественного. Ассоциативного массива всегда хватало.
>автоматическое раssпараллеливание
Ну да, а то дебилы с всякими casами и блокировками мучаются. А парни-то не знают! Можно ведь всё автоматически!!!
Проблема вот в чем. Допустим, у тебя 4 ядра - типично в наше время. Код хацкелиста работает медленней в 3-5 раза.
В большинстве случаев чтобы уделать хацкель assпаралелить просто не нужно.
PS На секономленом электричестве приготовишь себе борщ.
LispGovno 12.11.2012 12:33 # −3
>не нужно
>>паттерн-матчинг
>Да в общем ничего сверхъестественного. Ассоциативного массива всегда хватало.
ко ко ко
С остальным согласен. Впрочем чистота нужна местами. (Атрибут/Аннотация функции, как чистой)
3.14159265 12.11.2012 12:37 # +1
Что нельзя сделать по-быстрому руками, и без чего невозможно писать хороший код (а не те говнопримеры что в Куче).
LispGovno 12.11.2012 12:49 # 0
Можно. Но зачем копаться в говне руками самому, если для этого есть наемные копатели паттерн-матчинг?
anonimb84a2f6fd141 06.12.2013 22:00 # 0
anonimb84a2f6fd141 06.12.2013 21:59 # 0
HaskellGovno 06.12.2013 16:28 # +2
LispGovno 06.12.2013 21:06 # −1
bormand 06.12.2013 21:17 # +2
LispGovno 06.12.2013 21:29 # 0
Stertor 06.12.2013 22:04 # 0