Re[6]: Мифический Haskell
От: Паблик Морозов  
Дата: 17.02.12 12:32
Оценка: :))) :)))
Здравствуйте, dsorokin, Вы писали:

D>Вообще, нет устоявшегося общепризнанного определения


Ну как же нет? Ведь давно известно, что языки делятся на чистые функциональные и грязные императивные.
Re[5]: Мифический Haskell
От: FR  
Дата: 17.02.12 12:40
Оценка:
Здравствуйте, alex_public, Вы писали:


_>Как это какое? Это как раз основное преимущество Пролога в этой области. Без этого сопоставление с образцом является только синтаксическим сахаром к if/else лестнице. А с ним получается мощнейший инструмент. Ну на самом деле это просто у меня были завышенные ожидания к Хаскелю, что типа там собрали всё лучшее и если уж есть сопоставления с образцом, то "максимальное, прологовское". )


Из ФЯ сопоставление максимально близкое к прологовскому у Pure http://docs.pure-lang.googlecode.com/hg/pure.html#rule-syntax вообще язычек во многом даже повыразительней чем хаскель.

Ну и у рефала ПМ также намного мощней чем у более традиционных ФЯ.
Re[9]: Мифический Haskell
От: FR  
Дата: 17.02.12 12:49
Оценка:
Здравствуйте, Курилка, Вы писали:

А>> Не надо каку с конфеткой сравнивать. У вас, похоже, весьма слабые представления о том, что такое DSL.


К>А есть какие-то внятные варианты таких DSL, но чтоб не были прибиты к MS (XAML) или Firefox (XUL) ?


Есть прибитые например к wxWidgets http://docs.wxwidgets.org/2.9.3/overview_xrc.html
Re[6]: Мифический Haskell
От: MigMit Россия http://migmit.vox.com
Дата: 17.02.12 13:14
Оценка:
Здравствуйте, dsorokin, Вы писали:

D>Здравствуйте, alex_public, Вы писали:


_>>Эээ, Lisp — это тоже анти Хаскель? )))


D>Лиспы вполне себе функциональные.


Лисп имеет некоторые функциональные возможности. Но называть его "функциональным языком" — сильное преувеличение. Лисп ни в коей мере не способствует написанию программ в функциональном стиле.
Re[6]: Мифический Haskell
От: FR  
Дата: 17.02.12 13:25
Оценка:
Здравствуйте, vshabanov, Вы писали:


V>Ну вставить хаскелл в scons конечно не получится )


http://www.scons.org/wiki/GhcBuilder
Re[13]: Мифический Haskell
От: FR  
Дата: 17.02.12 13:28
Оценка: +1
Здравствуйте, alex_public, Вы писали:

_>Тогда значит только OCaml у нас получается "самый самый"? ))) И в ФЯ не инвалид и всё остальное есть? )


У окамла очень специфичный ОО, весьма далекий от мейнстрима. Хотя как простой безопасный императивный язык он да неплох.
Re[7]: Мифический Haskell
От: vshabanov http://vshabanov-ru.blogspot.com
Дата: 17.02.12 13:58
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Здравствуйте, vshabanov, Вы писали:


V>>А в хаскелле над этим думать не надо (если только в некоторых местах, где может быть переполнение ленивых thunk-ов, но со временем просто перестаешь писать код, где это возможно)


_>О, кстати, вспомнил ещё про yield в Питоне — тоже интересное решение для ленивости, в императивном стиле можно сказать. )))


Ну что уж поделать, коли генераторы через классы офигеешь писать.

V>>Поскольку IO a -- это именно действие (и, между прочим, чистая ф-я), то их можно комбинировать также как и все остальные выражения. Т.е. можно сделать несколько таких спискок-print-ов и сливать их, можно сделать take/drop, да что угодно. Т.е. уровень работы с программой совершенно другой.


_>Это уже к метапрограммированию ближе получается...


К метапрограммированию это не относится, т.к. никакой код не генерится. Но в целом появляется больше способов оперировать с действиями, по сравнению с обычным вызовом ф-ии

V>>Т.е. все эти "нечистые" монадные вычисления, на самом деле чистые, и по сути:

V>>do a <- b; c
V>>более простой способ записать
V>>\ w0 -> let (a, w1) = b w0 in c w1

_>Всё же синтаксис для этой "императивной" части мне не кажется удобным.


Тут уж дело вкуса. Многим, например, нравится f(x,y,z), но не нравится f x y z.

V>>Про C++ сразу же вспоминается, почему Торвальдс не использовал C++ для Git (где-то был еще более развернутый ответ, чем по сслыке).


_>Хы, его отношение к C++ давно известно, так что тут это не совсем аргумент. ) А вот если посмотреть на чём написаны apache, nginx, lighttpd... Или те же самые виртуальные машины сами...


http://svn.apache.org/viewvc/httpd/httpd/trunk/server/
http://trac.nginx.org/nginx/browser/nginx/trunk/src/core/
http://redmine.lighttpd.net/projects/lighttpd/repository/show/trunk/src
http://git.qemu.org/?p=qemu.git;a=tree

V>>Вообще его обчыно вместе с вебсервером используют (всякие yesod/warp/happs), зачем каждый раз скрипт пускать


_>Собственно при fastcgi он и не запускается каждый раз. Но вообще да, отдельный сервер конечно лучше. Хотя мне всё равно пока как-то привычные доверять nginx/lighttpd... )))


А их обычно фронтэндами ставят. Их все-таки не напрягает раздавать медленные соединения или там сжатие включить. Да и статика та же самая.
Re[7]: Мифический Haskell
От: vshabanov http://vshabanov-ru.blogspot.com
Дата: 17.02.12 14:02
Оценка:
Здравствуйте, FR, Вы писали:

V>>Ну вставить хаскелл в scons конечно не получится )


FR>http://www.scons.org/wiki/GhcBuilder


Я про то, что писать сборочные скрипты на хаскеле в scons не получится.

А собирать хаскелл scons-ом -- это сильно, конечно. Две строчки в Makefile заменить на целую систему сборки.
Re[8]: Мифический Haskell
От: FR  
Дата: 17.02.12 14:14
Оценка:
Здравствуйте, vshabanov, Вы писали:


V>Я про то, что писать сборочные скрипты на хаскеле в scons не получится.


Странно что еще не написали сборочную систему на хаскеле, или уже?

V>А собирать хаскелл scons-ом -- это сильно, конечно. Две строчки в Makefile заменить на целую систему сборки.


make не сборочная система?
Две строчки будут в make только для "hello world".
Для кроссплатформенных или когда нужна многовариантная сборка scons или аналоги существенно проще чем маке.
Re[10]: Мифический Haskell
От: korvin_  
Дата: 17.02.12 14:30
Оценка:
Здравствуйте, Klapaucius, Вы писали:

K>Scheme — не лисп. Ну, или, если считать, что Scheme — лисп, то тогда Common Lisp — не лисп. Тут, знаете, как с римскими папами и антипапами ситуация. Они бы и жгли друг друга на кострах с удовольствием, да боятся, что огонь на бороду перекинется.


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

K>Haskell — не ML семейство. Scala в него и то больше смысла записать.

K>ML семейство и Scheme — это функциональные, императивные языки. Haskell функциональный и декларативный. В принципе, любой язык, в котором функции первоклассны — функциональный и таких ФЯ-инвалидов довольно много.

Мне больше нравятся критерии, озвученные в SICP: нормальный порядок вычислений и декомпозиция на потоки. Т.о. к (чисто) функциональным языкам можно отнести Miranda, Clean и Haskell например.
Re[14]: Мифический Haskell
От: alex_public  
Дата: 17.02.12 14:40
Оценка:
Здравствуйте, Klapaucius, Вы писали:

_>>Тогда значит только OCaml у нас получается "самый самый"?


K>К сожалению, не получается.


Ну да, в общем то не получается. Иначе бы мы давно на нём сидели, а не на C++. Но не получается совсем не по причинам охвата малого количества парадигм. )

_>> И в ФЯ не инвалид и всё остальное есть?


K>Что остальное?


Остальные парадигмы. Хотя логической конечно нет, но она вроде как реально только в Прологе и есть.
Re[6]: Мифический Haskell
От: alex_public  
Дата: 17.02.12 14:42
Оценка:
Здравствуйте, FR, Вы писали:

FR>Из ФЯ сопоставление максимально близкое к прологовскому у Pure http://docs.pure-lang.googlecode.com/hg/pure.html#rule-syntax вообще язычек во многом даже повыразительней чем хаскель.


FR>Ну и у рефала ПМ также намного мощней чем у более традиционных ФЯ.


Даже не слышал про таких никогда. ))) Боюсь это точно только для фана и можно рассматривать, а не как потенциальных кандидатов в дело. )
Re[8]: Мифический Haskell
От: alex_public  
Дата: 17.02.12 14:56
Оценка:
Здравствуйте, vshabanov, Вы писали:

V>http://svn.apache.org/viewvc/httpd/httpd/trunk/server/

V>http://trac.nginx.org/nginx/browser/nginx/trunk/src/core/
V>http://redmine.lighttpd.net/projects/lighttpd/repository/show/trunk/src
V>http://git.qemu.org/?p=qemu.git;a=tree

Ааа git тоже на C? ))) Я почему то подумал что там отказались от C++ в пользую чего-то динамического. Типа как Mercurial на Питоне работает. Ну это я тогда считаю аргументом в мою же пользу (аргументы товарища Торвальдса о другом) — код на C и C++ в целом обычно одинаково работает по скорости. Даже иногда С++ бывает быстрее за счёт инлайнов постоянных. Но это естественно в нормальных руках.

Хотя C++ тут уже оффтопик по сути.

Вообще лично мне пока только один язык приглянулся (из тех, что я рассматривал для фана) как потенциальная замена текущих инструментов. Это D. Но с ним свои проблемы с библиотеками, компиляторами и т.д. Так что это всё в далёком будущем, если вообще случится. Ещё были варианты с OCaml и Haskell, но это было пока не попробовал их непосредственно...
Re[8]: Мифический Haskell
От: alex_public  
Дата: 17.02.12 14:58
Оценка:
Здравствуйте, vshabanov, Вы писали:

V>А собирать хаскелл scons-ом -- это сильно, конечно. Две строчки в Makefile заменить на целую систему сборки.


Ну как бы там на языке этой сборки файл проекта и получется из двух строчек. Только он при этом умеет заметно больше make файла. Кроссплатоформенность, отслеживание изменение, отслеживание зависимостей и т.д..
Re[15]: Мифический Haskell
От: korvin_  
Дата: 17.02.12 15:02
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Остальные парадигмы. Хотя логической конечно нет, но она вроде как реально только в Прологе и есть.


Есть такая распространенная задачка для изучающих CL или Scheme: реализовать встроенный Пролог =) Думаю и во многих других языках это возможно.
Re[9]: Мифический Haskell
От: Курилка Россия http://kirya.narod.ru/
Дата: 17.02.12 15:11
Оценка: :)
Здравствуйте, FR, Вы писали:

FR>Здравствуйте, vshabanov, Вы писали:



V>>Я про то, что писать сборочные скрипты на хаскеле в scons не получится.


FR>Странно что еще не написали сборочную систему на хаскеле, или уже?


написали, конечно
Re[10]: Мифический Haskell
От: alex_public  
Дата: 17.02.12 15:57
Оценка:
Здравствуйте, Курилка, Вы писали:

FR>>Странно что еще не написали сборочную систему на хаскеле, или уже?


К>написали, конечно


Xa. Я порадовался (может хоть здесь применение найдётся, вдруг чем-то удобнее scons'a будет да и вообще всё же статически типизированые языки больше люблю) и полез смотреть сразу. В описание порекомендовали видео глянуть... Это http://vimeo.com/15465133. А там какая-то странная личность первым же слайдом вывела на экран "мегамонаду". Ну да, Хаскель, такой Хаскель... )))
Re[11]: Мифический Haskell
От: Аноним  
Дата: 17.02.12 16:11
Оценка:
Здравствуйте, alex_public, Вы писали:

FR>>>Странно что еще не написали сборочную систему на хаскеле, или уже?


К>>написали, конечно


_>Xa. Я порадовался (может хоть здесь применение найдётся, вдруг чем-то удобнее scons'a будет да и вообще всё же статически типизированые языки больше люблю) и полез смотреть сразу. В описание порекомендовали видео глянуть... Это http://vimeo.com/15465133. А там какая-то странная личность первым же слайдом вывела на экран "мегамонаду". Ну да, Хаскель, такой Хаскель... )))


Чем монады не угодили? И что такое мегамонады?
Re[12]: Мифический Haskell
От: alex_public  
Дата: 17.02.12 16:24
Оценка:
Здравствуйте, http://palm-mute.livejournal.com/, Вы писали:

HPM>Чем монады не угодили? И что такое мегамонады?


Да я вроде уже писал про всё это в теме выше. Сейчас просто уже как шутка скорее. )))

А вообще я обозвал мегамонадами случаи, когда вся программа состоит только из одной монады (main соответственно) и всё. Т.е. никакого "нормального" код рядом.

Да, а в данном случае вообще странно. Я ожидал увидеть в начале презентации системы сборки что-то типа такого http://www.scons.org/doc/production/HTML/scons-user/c258.html — нормальный пример достигаемого эффекта. А то что вылезло там на экран первым делом (после приветствия)... Даже слов нет...
Re[5]: Мифический Haskell
От: Паблик Морозов  
Дата: 17.02.12 16:35
Оценка: :)
Здравствуйте, alex_public, Вы писали:

_>Хы, а Питон не раньше его появился на свет случаем? )))


http://docs.python.org/howto/functional.html#generator-expressions-and-list-comprehensions

Только не `спизжены' а `позаимствованы'.

А в Хаскелле они в свою очередь позаимствованы из Miranda.
А в Miranda из KRC.
А в KRC из SASL.
А в SASL из SETL.
А в SETL из Соломона.
А в Соломоне из Давида царя
А в Давиде царя из Иессея.
А в Иессее из Овида
А в Овиде из Вооза от Рахавы
А в Воозе из Салмона
А в Салмоне из Наассона
А в Наассоне из Аминадава
А в Аминадаве из Арама
А в Араме из Есрома
А в Есроме из Фареса
А в Фаресе из Иуды братьев его.
А в Иуде из Иакова.
А в Иакове из Исаака.
А в Исааке из Авраама.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.