LINUX.ORG.RU

Вышел новый стандарт Haskell

 ,


0

1

Саймон Марлоу (Simon Marlow) опубликовал анонсированный ранее Haskell 2010 Report (HTML, PDF).

Основные изменения:

  • Добавлен Numeric
  • Добавлено System.IO.Error.{catch,try,ioError}
  • Исправлено множество багов.

Также Саймон указал на то, что чуть позже, в этом году появится новая ревизия Хаскелля, а также что с этого момента он передаёт полномочия главного редактора документа спецификаций главе комитета Хаскелля 2011 года, Малькольму Воллесу (Malcolm Wallace).

>>> Подробности



Проверено: catap ()
Ответ на: комментарий от Ilshat

В принципе, если хорошо продумывать терминальные условия (что бы не было бесконечной рекурсии) то срыв стека маловероятен. Тот же обход дерева: макс. глубина рекурсии там очевидно равна максимальной вложенности каталогов, что обычно немного. Насчет тормозов, тоже спорно, обычно затраты на вызов рекурсии ничтожно малы по сравнению с вычислительной сложностью самой функции.

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

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

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

> Речь шла о том, что не хаскеллеров не любят за что-то,

Их реально не любят, это, как бы, факт.

а скорее хаскеллеры не любят...


Ну это вообще их личные трудности, зачем на люди их выносить?

Смотрим на третий пост, понимаем за что хаскеллеры таких не любят.


Ну дык это же просто стёб на тему того, что из русскоязычных хаскелистов, известных в рунете, реально пишущих на haskell широкой публике известно всего два: один пишет архиватор, а другой занимается штангой ;) Наверное есть и ещё, но они прячутся, а участвующие во всяких флеймах ссылок на свой код обычно не приводят, ссылаясь на закрытость, секретность и т.п.

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

>Какие ещё аргументы за рекурсию, кроме якобы «понятности»?

А этого мало?

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

> Насчет тормозов, тоже спорно, обычно затраты на вызов рекурсии ничтожно малы по сравнению с вычислительной сложностью самой функции.

Ничо это не спорно! То, что тормоза не очень зометны, не значит, что их нет.

Ilshat
()
Ответ на: комментарий от alt-x

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

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

> что из русскоязычных хаскелистов

Кого интересует школьный кружок информатики? Это не стеб над русскоязычными хаскеллерами, а скорее всего, стеб над любым русскоязычным коммюнити.

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

> То, что тормоза не очень зометны, не значит, что их нет.

Tail recursion == for loop.

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

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

impfp
()

уныло как-то, нетортово... 6 страниц унылости.

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

> Расскажи мне, математик, что и в какой организации лично ты официально пишешь на скале и сколько тебе за это платят.

на скале можно писать ровно так же как и на жабе, никто не запрещает. просто те плюшки, которые в ней есть от ФП провоцируют на ФП-стиль.

я пишу. за деньги. ширпотреб.

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

> выбрось все ключи. держи все открытым. не жалко.

Ходи чёрных очках и костюме ниндзи и найми трёх двойников, чтобы никто не узнал, когда и в какой именно продуктовый ты ходишь.

alt-x ★★★★★
()

Привет Жора!

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

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

раз элементарно — так напиши (именно случай ничего не делать — нам нужен просто список файлов)

далее обсудим расход памяти и быстродействие

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

при этом функция для inode может использоваться вымышенная... хотя стойте, стойте — как там на хаскеле с библиотеками?

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

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

Неприятно, да. Но в случае с АТ&T, всё равно им возмещать всё что ты на этом потерял.

alt-x ★★★★★
()
Ответ на: комментарий от Ilshat

>Ога, большая, только не значит, что таких не бывает.

Предположим, стека хватит на 1000 рекурсивных вызовов. Несбалансированные деревья IRL нахер никому не впёрлись. А это значит, что колчиество элементов в таком дереве, чтобы сорвало стек, будет 2^1000. Так ВООБЩЕ не бывает.

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

> Предположим, стека хватит на 1000 рекурсивных вызовов. Несбалансированные деревья IRL нахер никому не впёрлись.

Ты чо - сказочник? Прикинь, глубина дерева каталогов элементарно может быть больше 1000

Давай, сбансируй. Разговор вооще ни о чом.

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

>Нахерачил скрипт за неск минут,

Вот посмотри на этот код и скажи - не кажутся ли тебе решения типа $stop=0, $stop=1 противоестественными? Я понимаю что программисты уже привыкли писать такую бойду - но не выворачивает ли сознание от необходимости такое писать, не кажется ли это кондыбоберным решением? Особенно в нескольких вложенных циклах? И не создается ли ощущение что какая-то лажа зарыта, глядя на exit из программы в коде глубокой иерархической вложенности?

Я не говорю тут о всяких теоретических обоснованиях - просто посмотри на код и прислушайся к ощущениям.

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

Ты вообще помнишь события, которые произошли раньше, чем минуту назад? Я говорил о бинарном дереве. О бинарном. Дереве. Это такая структура данных, которая либо пуста, либо содержит 2 (ровно две, не три, не одну, а две) ссылки на точно такие же структуры.

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

>а в хаскеле?

Добавлением еще одного аргумента. Механизм аналогичный развороту ункции из просто рекурсивной в хвосторекурсивную.

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

Ну, если строить AST спискового выражения вида (a(b(c(d(...))))) (с простейшей грамматикой P->PE|P; E->(L); L->aL|LE|), AST там представлен сами видите какое дерево, 1000 вызовов может и не хватить...

impfp
()
Ответ на: комментарий от alt-x

>Необязательно. Мне всё-равно как соткана бухгалтерия в конторе, с которой я точно не столкнусь в ближайшее время, или, например, веб-магазин в котором я что-то покупаю, если он хоть как-то работает.

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

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

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

> Какие ещё аргументы за рекурсию, кроме якобы «понятности»?

Попробуй создавать немутабельные структуры без рекурсии.

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

> Я говорил о бинарном дереве. О бинарном.

Говори дальше, сам с собой. Мало интересно это, оторвано от реальности.

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

>>Необязательно. Мне всё-равно как соткана бухгалтерия в конторе, с которой я точно не столкнусь в ближайшее время, или, например, веб-магазин в котором я что-то покупаю, если он хоть как-то работает.

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

Ну так, при наличии полностью автоматических, кто к ним пойдёт?

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

Как акционер - возможно, как клиент - необязательно. Исключение - гос службы. Тут уж, конечно, сполна.

alt-x ★★★★★
()

А кто здесть пользует Axiom? Расскажите. Мне кажется, я нашел приличную CAS, но как бы не разочароваться потом.

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

AST тоже в тему, их наиболее естественно обходить рекурсивно. Но я ни разу не видел, чтобы компилятор упал от переполнения стека. Значит, хватает.

Zenom ★★★
()

=============================================15% of comments=============================================

folone
() автор топика
Ответ на: комментарий от alt-x

>Как акционер - возможно, как клиент - необязательно. Исключение - гос службы. Тут уж, конечно, сполна.

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

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

> глубина дерева каталогов элементарно может быть больше 1000

хрена се. Это при каких задачах такое возникает?

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

> если разбираешься в предметной области - не запутаешься. для списков fmap = map, кстати говоря

это ясно... только почему более общее название (map) используется для частного случая монады?

также смущает отделение functor в отдельный класс: ведь для монады можно было бы сделать fmap по умолчанию

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

хрена се. Это при каких таких задачах может потребоваться больше 640 килобайт памяти? © Гейтс

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

почему более общее название (map) используется для частного случая монады?

чего-чего? название map для списков сложилось исторически, монады тут как бы не при делах

также смущает отделение functor в отдельный класс: ведь для монады можно было бы сделать fmap по умолчанию

я тебя вообще перестаю понимать. функтор и монада - это, гм, существенно разные структуры

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

Хорошая презентация, которая

а) объяснила, что ленивость хаскелла мешает и хороша только для обучения, что создатели языка совершили ряд промахов, а монады громоздки, не всегда удобны и по сути костыль для работы в реальном, изменяющемся мире

б) объяснила, что в функциональном стиле можно писать и на других более распространенных и популярных языках

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

также смущает отделение functor в отдельный класс

до меня, кажется, дошло. ты имеешь в виду определение монады через fmap/join?

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

>колчиество элементов в таком дереве, чтобы сорвало стек, будет 2^1000. Так ВООБЩЕ не бывает

И это в контексте языка, допускающего бесконечные структуры?

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

_ленивые_ бесконечные структуры

гм. а бесконечная структура может быть неленивой? :)

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