LINUX.ORG.RU

Haskell - есть ли на нём полезные программы?


0

2

У меня товарищ немного пишет на Окамль, и хочет заменить его на Хаскель. Вот хотелось бы услышать коротенько про истории успеха. С производительностью Хаскеля мня ознакомил шутаут. Так что интересует масштабируемость. Какие полезные программы написаны на Хаскеле? Я вот знаю darcs и даже сам пользовался. Ещё хотя бы 5 может кто-нибудь привести? Причём, нужны программы, которыми пользуются обычные люди, а не только адепты Хаскеля.

Пожалуйста, 256 слов на каждую историю успеха и пруфлинк.

★★★★★

Ответ на: комментарий от malbolge

Ох, уж эти теоретики... Низачот.

Ну, больше постараюсь тебе не отвечать, чо.

Именно «рвет», а не «немножко опережает» (т.е. менее чем на порядок)

Когда счет идет уже на проценты, а не на порядки, это именно «рвёт». Ты бы хоть общий забег посмотрел, чтобы знать, о чем речь вообще.

anonymous
()
Ответ на: комментарий от anonymous

Когда счет идет уже на проценты, а не на порядки

Но ведь он на проценты не идет. Так чего тогда об этом говорить?

anonymous
()
Ответ на: комментарий от anonymous

Ты бы хоть общий забег посмотрел, чтобы знать, о чем речь вообще.

В общем моно рвет хаскель, лол. По-моему, ты соснул.

anonymous
()
Ответ на: комментарий от anonymous

В общем моно рвет хаскель, лол.

Точно нелады.

anonymous
()
Ответ на: комментарий от shty

scala

Насколько понял, досмотрев топик, вы и сами заметили, что с нативным кодом еще не все готово. Да и в любом случае, «нативный код» и «библиотеки» будут соединены логическим «и»?

ocaml

Немалое из критики в адрес haskell применимо и к нему (из важных отличий, что помню: ленивость по умолчанию только в «fun», не нужно сношаться с монадами, в т.ч. io; но, скажем, нема «deriving», вывод менее удобен). И, насколько могу судить, библиотек сильно меньше.

anonymous
()
Ответ на: комментарий от anonymous

s/если там вкусняшки/если там нет вкусняшки/

Это понятно, имелся ввиду какой-нибудь (в смысле не обязательно такой же) механизм, чтоб вручную не описывать как надо выводить пользовательский тип данных.

anonymous
()
Ответ на: комментарий от anonymous

С какой арифметикой? На шутауте за тебя все подсчитано, не бойся, никакой арифметики не надо.

anonymous
()
Ответ на: комментарий от gensym

Сколько можно говорить-то? Common Lisp же.

Сколько влезет.

Проще монады / стрелочки / existensials (в объемах GADT, например) изучить, чем запомнить over 3000 не особо структурированных функций, многие из которые с весьма неинтуитивными именами.

anonymous
()
Ответ на: комментарий от anonymous

чем запомнить over 3000 не особо структурированных функций, многие из которые с весьма неинтуитивными именами.

Бред. На самом деле у CL ядро совсем небольшое: достаточно запомнить 25 специальных форм + около сотни базовых функций стандартной библиотеки. Все остальное построено на этом ядре. Просто стандартная библиотека раздута из-за совместимости с разными диалектами из которых создавался общелисп.

gensym ★★
()
Ответ на: комментарий от gensym

около сотни базовых функций стандартной библиотеки.

Прямо около сотни? А если код читать, придется слишком часто в hyperspec (или встроенную спарвку, etc) заглядывать.

Просто стандартная библиотека раздута из-за совместимости с разными диалектами из которых создавался общелисп.

Это понятно, но проблема, возникшая из-за совместимости, не перестает быть проблемой. Просто так от не не абстрагироваться.

anonymous
()
Ответ на: комментарий от gensym

Не заметил...

Ваш «бред» прменяется к обоим пунктам? Или аргумент неинтуитивности имен вы не оспариваете?

anonymous
()
Ответ на: комментарий от gensym

плюсую. хотя чтобы достичь просветления и понимания функционального программирования, лучше имхо хаскель.

ymn ★★★★★
()
Ответ на: комментарий от anonymous

чем запомнить over 3000

Неграмотные анонимы.

752 функции и спец.форм.

978 символов всего включая спец. формы, фукции, макросы, классы, методы, декларации.

antares0 ★★★★
()
Ответ на: комментарий от dave

Здесь камрад gensym прав. Проблема надумана.

Вы про конкретно «неинтуитивность», имхо, prin1-to-string и (f)makunbound уже много стоят...

anonymous
()
Ответ на: комментарий от antares0

Неграмотные анонимы.

«Аноним», а то намекает, что егэ вам удалось сдать лишь с помощь стада баранов.

978 символов всего включая...

Не так сильно я и приврал (если вам верить, проверять, извините, влом), так что совесть не сильно мучает по поводу эскалации неадекватности, начатой моим уважаемым оппонентом.

anonymous
()
Ответ на: комментарий от anonymous

Не так сильно я и приврал (если вам верить, проверять, извините, влом), так что совесть не сильно мучает по поводу эскалации неадекватности, начатой моим уважаемым оппонентом.

смысла спорить нет. не нравится - не используй.

gensym ★★
()
Ответ на: комментарий от anonymous

«Аноним», а то намекает,..

Извиняюсь, хотя это и общие сетования. Вы по моему тут не первый который умножают на n и возводят в квадрат.

(если вам верить, проверять, извините, влом),

Hyperspec http://clhs.lisp.se/Front/X_Symbol.htm

There are 978 symbols in the COMMON-LISP package.

конкретный код разбрасывания этого числа по классам достатосно банален, но вам скорее всего не интересен.

Меня всегда интерсовало. Те люди (и вы в частности), которые так легко «эскалируют» когда-нибудь пробовали посчитать аналогичную статистику для других языков, перед тем как так гордо выдавать свое неавторитеное суждение.

antares0 ★★★★
()
Ответ на: комментарий от gensym

смысла спорить нет. не нравится - не используй.

Согласен, мне следовало добавить, что ощущения, разумеется, субъективны.

Но, между прочим, проследите нить, на которую вы отвечали (с гну компилятора java и выше), там упоминалось «статическая типизация». У лиспа с этим сложнее, то есть, ваш был не совсем корректен... Что позволило мне быть не совсем адекватным.

anonymous
()
Ответ на: комментарий от anonymous

Они многословны, но при этом вполне интуитивны. В лиспе принято писать многословные функции и переменные. В отличие от того же хаскеля, где как раз, названия краткие, но не всегда интуитивные.

dave ★★★★★
()
Ответ на: комментарий от antares0

Меня всегда интерсовало. Те люди (и вы в частности), которые так легко «эскалируют» когда-нибудь пробовали посчитать аналогичную статистику для других языков, перед тем как так гордо выдавать свое неавторитеное суждение.

Где тут гордость-то просматривается? Разве что эмоции...

Когда пробовал лисп субъктивно было сложно ориентироваться... Кстати, почему вы игнорируете «неинтуитивность»? (и посмотрите ответ выше, когда я отвечал на ответвление в сторону лиспа, вполне отдавал себе отчет, что ветка уже не в конструктивном русле).

anonymous
()
Ответ на: комментарий от anonymous

там упоминалось «статическая типизация».

не заметил. (или сделал вид) ;-)

gensym ★★
()
Ответ на: комментарий от dave

В лиспе принято писать многословные функции и переменные.

что очень хорошо сказывается на читаемости. Одни плюсы, короче.

gensym ★★
()
Ответ на: комментарий от dave

Приведенные две запомнились далеко не с первого раза (и это не совсем единичный случай).

многословные

но не всегда составные части «consistent» (извиняюсь) относительно других названий

anonymous
()

Ещё хотя бы 5 может кто-нибудь привести?

Конечно! Бенчмарки шутаута, которые привлекают новую кровь в секту штангистов.

red_eyed_peguin
()
Ответ на: комментарий от gensym

смысла спорить нет. не нравится - не используй.

А нефиг отвечать фразой

Сколько можно говорить-то? Common Lisp же.

на

Есть что-нибудь статистически-типизированное, компилируемое в нативный код, высокоуровневое и имеющее сопоставимый набор библиотек?

http://gcc.gnu.org/java/

А что-нибудь для практического использования?

Да и вообще так пошло игнорировать детали вопроса — это уже слишком даже для лиспера.

anonymous
()
Ответ на: комментарий от red_eyed_peguin

Во-первых, шутаут не показывает хацкель с лучшей стороны. А во-вторых, хватит форсить унылый и тупоголовый мем про штангистов. Он сразу выдает человека, которому нечего сказать по теме.

P.S. Еще один эксперт на зов явился.

anonymous
()
Ответ на: комментарий от dave

В отличие от того же хаскеля, где как раз, названия краткие, но не всегда интуитивные.

Названия краткие и их немного. И грамотный адхок-полиморфизм спасает от тысячи именований. Да и не только он.

anonymous
()
Ответ на: комментарий от dave

Здесь камрад gensym прав. Проблема надумана.

Не надумана. Когда я пытался осилить CL, из-за большого количества именований даже не с первой попытки до классов добрался. Какие-нибудь setf'ы или loop'ы вообще лучше сразу стороной обходить. Пока вкуришь, как эта наркота работает, состаришься.

anonymous
()
Ответ на: комментарий от anonymous

Когда я пытался осилить CL, из-за большого количества именований даже не с первой попытки до классов добрался. Какие-нибудь setf'ы или loop'ы вообще лучше сразу стороной обходить. Пока вкуришь, как эта наркота работает, состаришься.

одного «осиливания» не хватит. Нужно книжечки почитать. Пописать реалворлд программки.

gensym ★★
()
Ответ на: комментарий от anonymous

Где тут гордость-то просматривается? Разве что эмоции...

Кляну себя за излишни «цветастые» фразы:)

Кстати, почему вы игнорируете «неинтуитивность»?

Не игнорирую. Не вижу смысла обсуждать. Оглядываясь на свой средний жизниненый опыт (с 10+ языков) я не могу вспомнить ничего особенно интуитивного. Кроме досторического basic-а (dos и.т.д) и там input и print. Но там интуитивность построена на ограниченности.

когда я отвечал на ответвление в сторону лиспа, вполне отдавал себе отчет, что ветка уже не в конструктивном русле

Неконстркутивное русло это обсуждение CL в этой теме например. А вот конкретные рассужения про

over 3000

я отношу к превиранию фактов. Против чего собственно и протестую.

antares0 ★★★★
()
Ответ на: комментарий от antares0

я не могу вспомнить ничего особенно интуитивного

То есть, конкретно та парочка что я привел в ответ dave-у не вызывает у вас диссонанса? (вот почему не print-to-string / unbound-variable / unbound-function)

я отношу к превиранию фактов. Против чего собственно и протестую

Цель именно переврать не ставилась, запомнилось что немало и откуда-то «3000» (может из pcl, несколько глав осваивал), эмоции сыграли, в контексте данной ветки проверять факты не стал. Впредь буду говорить «почти over 1000».

anonymous
()
Ответ на: комментарий от anonymous

Для новичка они ничего не стоят посколько он их скорее всего не использует. А если встретит их использование в чужом коде то банально найдет их в hyperspec-е.

А продолжаюший уже смотрел тот же hyperspec по главам, там к каждой главе есть список фуннций. И запутаться там довольно сложно, на мой взгляд.

В всяком случае утвержать что лисп неинтуитивен из-за prin1-to-string, имхо это передергивание. Хотя конечно у каждого свое болото с своими кочками.

antares0 ★★★★
()
Ответ на: комментарий от anonymous

ой, s/bound/bind/ - глагол же нужен

anonymous
()
Ответ на: комментарий от antares0

Для новичка они ничего не стоят посколько он их скорее всего не использует.

Вполне базовые, лично я, например, часто использую в elisp (и даже специально их выписывал, дабы запомнить).

В всяком случае утвержать что лисп неинтуитивен

Сей вывод тоже передергивание). Это просто конкретные примеры, почему сложилось ощущение неинтуитивности.

anonymous
()
Ответ на: комментарий от dave

Дилдо. Там хоть что-нибудь про скобочки сказано? Может хватит лиспокомплексы выпячивать на ровном месте?

anonymous
()
Ответ на: комментарий от anonymous

Когда я пытался осилить CL, из-за большого количества именований даже не с первой попытки до классов добрался

Какие-нибудь setf'ы или loop'ы вообще лучше сразу стороной обходить.

Ну я и говорю личные кочки в личном болоте. К реальной жизни отношения не имеют.Ничего личного, я тоже далеко не все ЯП по накатанной осваивал.

antares0 ★★★★
()
Ответ на: комментарий от anonymous

вот почему не print-to-string

Потому что print уже есть и имеет свою специфику поведения.

unbound-variable / unbound-function

По сравнению makeunbound/fmakeunbound вопрос? Вопрос традиции и внутреней логики, ну и вкусовщина конечно. Ваш вариант не совсем точно отражает семантику.

antares0 ★★★★
()
Ответ на: комментарий от anonymous

Вполне базовые, лично я, например, часто использую в elisp (и даже специально их выписывал, дабы запомнить).

Гм я исключительно про CL. В elisp они может и базовые (я elisp не использую) d CL врядли.

antares0 ★★★★
()
Ответ на: комментарий от antares0

Имеют-имеют. Чем проще язык в осваивании, тем больше вероятность стать мейнстримом при прочих равных.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.