- 1
- 2
- 3
yoba = (flip (>>=) .) . ((filter .) . (flip . (((==) .) . flip mod)))
main = print $ yoba 3 0 [КО КО КО]
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+118
yoba = (flip (>>=) .) . ((filter .) . (flip . (((==) .) . flip mod)))
main = print $ yoba 3 0 [КО КО КО]
http://ideone.com/UGoYJ
result: Internal error time: 0s memory: 0 kB signal: 0
http://ideone.com/zNEPH
Но говно внезапно всплыло...
P.S. В примере с KO KO KO ghc 7.4.1 выдает корректную ошибку: Not in scope: data constructor `KO'. Видимо в 6.8.2 баг, приводящий к краху компилера.
На самом деле любой язык позволяет писать нечитабельную ерунду. Если эту возможность убрать, язык получится неудобным и невыразительным (привет бейсику и фортрану). Все сводится к тому, стоит ли абузить возможности языка, или же пользоваться ими в меру...
P.S. Хоть хаскель мне очень нравится, он все-таки вынуждает абузить многие возможности языка, зачастую приводя к ужасному коду ;)
Значительно переработан стандарт языка.
1. Введён свободный формат написания кода.
до этого 20+ лет стиль был не очень свободным
Впрочем, автор изначальнього тезиса отчасти прав - этот сверхплотный ФП-код - это неподдерживаемая заумь, одиночкам наверное зашибись, в промышленности неприемлемо. Впрочем, если одиночка за счёт мощи ФП сможет быть эффективнее, чем сто крестоблядей (как когда-то грозился клоун всл), то я поверю в ФП.
ФП давным-давно эффективнее в некоторых областях. Естественно, в других может быть эффективнее императивное или логическое программирование.
Например, сборщик мусора дотнета изначально был написан на Лиспе. Потом, после отладки и вылизывания, переписан на C++ для увеличения производительности.
В общем, будущее за мультипарадигменностью: для каждого случая применяем свой подход. Хай живе Немерле!
Киньте, пожалуйста, пруфлинк.
http://channel9.msdn.com/Shows/Going+Deep/Patrick-Dussud-Garbage-Collection-Past-Present-and-Future
Проприетарный стиль?
столмен негодуэ
Разбирался на досуге с некоторыми функциональными структурами данных, в связи с этим, собственно, и возник вопрос: к примеру, я объявляю typeclass Heap (как интерфейс, хочется ведь иметь несколько реализаций хипа), поддерживающий несколько методов, среди которых есть empty и merge.
Хотелось бы, к примеру, сказать, что любой Heap является Monoid, причём mempty = empty и mappend = merge, и этим избавиться от необходимости объявлять экземпляр Monoid для каждой реализации Heap.
Может, я что-то упустил...
Тогда бы и все монады можно было бы сделать аппликативными функторами в пару строчек кода, а не писать каждый раз реализации.
UPD: чуть не забыл про новый распиздатый .PONT Framework, для того чтобы таскать 500 мб библиотек к программам на yoba#
А ещё слухи ходят об Objective-yoba.
Вот они прожженные /prофи, которые с презрением смотрят на убогих крестовиков, обезьянок пхпшников, LINQ-шарперов, жабистов-фабрикантов и прочую нечисть.
Но ничего более полезного на чудо-хацкиле они почему-то написать не способны. Парадокс?!
танунах.
на самом деле, даже на пхп можно (конечно, в жутких болях, но можно) родить качественный софт
Нет, это не те слова, которые способны передать муки рождения софта на пыхе.
Еще и акк не тот.