LINUX.ORG.RU

Haskell 2010

 , haskell 2010, haskell-prime,


0

0

В списке рассылки появилось сообщение от Simon Marlow, где объявляется о новой ревизии языка Haskell — Haskell 2010.

Расширения, которые вошли в новый стандарт:

  • DoAndIfThenElse
    Синтаксис if-then-else будет выглядеть как «exp -> if exp1 [;] then exp2 [;] else exp3».
    «then» и «else» можно будет располагать на одном уровне.
  • HierarchicalModules
    Иерархическая структура модулей наконец-то войдёт в официальный стандарт.
  • EmptyDataDeclarations
    Конструкторы типов без конструкторов данных (это типы с единственным значением: _|_).
  • FixityResolution
    Изменения в синтаксическом разборе операторов с приоритетами. Важно только для официального отчёта.
  • ForeignFunctionInterface
    Давно использующийся FFI тоже войдёт в Haskell2010.
  • LineCommentSyntax
    Небольшое исправление, связанное со строчными комментариями.
  • PatternGuards
    Сопоставление с образцами в охраняющих выражениях.
  • RelaxedDependencyAnalysis
    Ослабленный анализ зависимостей: при выводе типов игнорируются ссылки на связанные переменные с явно указанными типами. Monomorphism restriction is gone.
  • LanguagePragma
    В отчёте будет упоминаться прагма «LANGUAGE» с расширениями: DoAndIfThenElse, HierarchicalModules, FixityResolution, PatternGuards, NoNPlusKPatterns, RelaxedDependencyAnalysis, LineCommentSyntax, EmptyDataDeclarations, LanguagePragma и ForeignFunctionInterface.
    Реализация, поддерживающая прагмы, должна обрабатывать «{-# LANGUAGE Haskell2010 -#}» (включает все вышеперечисленые расширения).
  • NoNPlusKPatterns
    Убран вариант синтаксиса при сопоставлении с образцом вида «n + k» для натуральных чисел.

Подробнее обо всех расширениях можно узнать здесь:
http://hackage.haskell.org/trac/haske...

>>> Сообщение в списке рассылки

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

>>> только больной человек мог придумать синтаксис в котором пробелы имеют значение!

ты про Python?

Питон и хацкель одного поля ягоды

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

Не равняйте Хаскель с Питоном. На Питоне написано много полезного софта. Разрабатывать просто и удобно. И пробелы там очень удачно прикручены: если вы пишете в хорошем стиле и делаете отступы, то зачем вам тратиь две строчки на {}? А если нет, то будете писать — никуда не дженетесь.

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

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

> Толку от него никакого.

Позвольте-позвольте!!! Не надо грязи в чистый огород Хаскеля!!! На нём уже написан файловый менеджер с применением GTK2HS. Я не знаю какой урод прикрутил к GTK Haskel, но факт остаётся фактом. Кстати, во флеме GTK/GNOME vs. Qt/KDE это будет плюсом GTK/GNOME. К ним даже хаскель можно привернуть...

На само тельце сего «первого в мире чисто академического и истинно чисто-функционального файлового менеджера» (читате на «уё*ще») можно полюбоваться здесь -> http://www.mickinator.com/wordpress/?cat=5

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

>Я не знаю какой урод прикрутил к GTK Haskel А что не устраивает в Gtk2Hs? Всё нетипизированное уродство Пел запрятано в красивую систему типов, в которой сегфолта не добьёшься даже при большом желании.

Mihai-gr
()
Ответ на: комментарий от Mihai-gr

> А что не устраивает в Gtk2Hs? Всё нетипизированное уродство Пел запрятано в красивую систему типов, в которой сегфолта не добьёшься даже при большом желании.

/me только что высунул нос из исходников приложения на С с GTK...

Нельзя ли с момента про «нетипизированное уродство Gtk» по-подробнее как-то? Ну, попугайте меня что ли... Этим самым «нетипизированным уродством» каким-нибудь коротеньким примерчиком... На С, если можно... Ткните, так сказать, пальчиком...

По поводу «добиться сегфолта» — это очень оригинальный подход к программированию. Я, например, по старости своей всё больше от них как чёрт от ладана шарахаюсь... :) Впрочем, «если что-то новенькое хочешь узнать о сексе, пообщайся с молодёжью», — не мной сказано, но я соглашусь... :)))

Я думаю (точнее, я просто уверен, т.к. достаточно регулярно с этим работаю), что при _грамотном_ написании кода и правильном использовании библиотек GTK/GNOME, сегфолта добиться столь же сложно как и в хаскиле. Впрочем, что только люди не придумают, чтобы не использовать С...

P.S. Мне отчаянно понравился файловый менеджер. Особенно умилила кнопка «Refresh». Это подумать только — оно не умеет следить за изменениями файловой системы без лишнего напоминания? Тогда смысл GTK2HS? В отрисовке виджетов? Огромный шаг для Человечества... :)

Искренне Ваш, полуосепший от слёз умиления, /me опять полез в исходники... До дедлайна оставалось 3 недели и парочка весьма мелких недоделок в проекте...

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

> Я думаю (точнее, я просто уверен, т.к. достаточно регулярно с этим работаю), что при _грамотном_ написании кода и правильном использовании библиотек GTK/GNOME, сегфолта добиться столь же сложно как и в хаскиле.

Ога. Только постоянно что-то сегфолтися что в Гноме, что в KDE. Но, наверно, у тебя особые знания, куда там безграмотным гномо(кедо)писателям.

P.S. Мне отчаянно понравился файловый менеджер. Особенно умилила кнопка «Refresh».

Я тебя правильно понял, что на хорошем языке невозможно написать пионерскую поделку? Ведь на С пишутся исключительно шедевры инженерной мысли.

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

>Я тебя правильно понял, что на хорошем языке невозможно написать пионерскую поделку? Ведь на С пишутся исключительно шедевры инженерной мысли.

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

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

> единственная программа на хаскеле

Почему единтвенная? Их же две.

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

> Только постоянно что-то сегфолтися что в Гноме, что в KDE. Но, наверно, у тебя особые знания, куда там безграмотным гномо(кедо)писателям.

А это как? Вот ну ни как не наблюдаю я таких явлений. О KDE я ни чего говорить не буду. Не пользуюсь.

Но о GTK/GNOME сказать могу, пожалуй. Единственный вариант для сегфолта на С — безгранично-безмерная тупость пишущего «шедевр», причём пишуший не озадачил себя тем, чтобы посмотреть (подумать, но это реже) как надо _правильно_ сделать.

Второй вариант — либо криво установленная система, с непонятным набором библиотек, которые обновлялись неизвестно как, либо нестабильная ветка системы — на Gentoo, например, были косяки с нестабильной веткой. Так кто законодательно навязывает нестабильную ветку-то? В стабильной по странной причине, косяков не вижу. Я делаю что-то не то, Учитель? :)))

Я тебя правильно понял, что на хорошем языке невозможно написать пионерскую поделку? Ведь на С пишутся исключительно шедевры инженерной мысли.

Нет. Вы меня не правильно поняли. Во-первых, «пионэрские поделия» лежат там где их пионэры и оставили (при любом раскладе не на сайте). И при любом раскладе не в качестве рекламы новых и неизведанных доселе возможностей. Дескать — «а мы то же умеем». Угу. Умеете... :)

Во-вторых, слава Богу, пионэры в наши, несомненно просвещённые времена, в С как-то не желают лезть. «Не модно». Вот и получается что «сухой остаток», оставшийся в _С_ всё-таки _решает_поставленные_задачи_. Вне зависимости от их шедевральности или эпохальности.

P.S. Я знаю как пишется слово «пионер»... Но я не о «пионерах».

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

>Ога. Только постоянно что-то сегфолтися что в Гноме, что в KDE.

В Гноме-нет, в KDE-да. Потому что в гноме типизация динамическая и поэтому ABI сломать труднее.

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

> единственная программа на хаскеле таки оказалась пионерской поделкой.. ччерт..

Нет. Там ещё есть... Один Hoogle стоит упомянуть. Чертовски быстр, когда ищет информацию по стандартным библиотекам самого Haskel. Когда пытаетесь прицепить внешние данные (типа как тут описано -> http://www.haskell.org/haskellwiki/Hoogle#Converting_text_databases_to_binary... , пп 1.2-1.3), то это напоминает совет «никогда не проделывайте этого дома». Точнее, «никогда этим не пользуйтесь».

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

Упс! Хотел было добавить, но меня опередили... По типизации данных... Ну, сталбыть, не судьба.

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

> Потому что в гноме типизация динамическая и поэтому ABI сломать труднее.

Вы правы.

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

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

Лично я про существование этой программы узнал в этом топике.

Хаскелл стал набирать популярность в последние несколько лет. До недавнего времени было не так много библиотек, поэтому написать что-либо серьёзное было труднее, чем на том же С.

Да и думаю, программ на Хаскелле во столько же раз меньше, чем на С, во сколько меньше программистов.

Но, надеюсь, ситуация с программами переломится, как она уже переломилась с библиотеками. Правда с ростом количества поклонников Хаскелля растёт и количество неосиливших. Бегают они и нудят: «это не я тупой, это Хаскель сложный».

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

> В Гноме-нет, в KDE-да. Потому что в гноме типизация динамическая и поэтому ABI сломать труднее.

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

Нестабильность ABI С++, думаю, особой роли не играет. Гном и Кеды из стабильной Убунты, т.е. собирались из исходников одной и той же версией компилятора.

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

>Хаскелл стал набирать популярность в последние несколько лет. До недавнего времени было не так много библиотек, поэтому написать что-либо серьёзное было труднее, чем на том же С.

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

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

Перелом будет открытым. Со смещением.

что ж, некоторые уродства надо решать костроправием. или костовыправлением. больно, но нужно

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

>> Перелом будет открытым. Со смещением.

что ж, некоторые уродства надо решать костроправием. или костовыправлением

Костоправы будут заниматься последствиями перелома.

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

Нет. Там ещё есть... Один Hoogle стоит упомянуть. Чертовски быстр, когда ищет информацию по стандартным библиотекам самого Haskel. Когда пытаетесь прицепить внешние данные (типа как тут описано -> http://www.haskell.org/haskellwiki/Hoogle#Converting_text_databases_to_binary... , пп 1.2-1.3), то это напоминает совет «никогда не проделывайте этого дома». Точнее, «никогда этим не пользуйтесь».

ХЗ. Я пользуюсь Hayoo. Более удобного поиска по API я не видел.

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

Костоправы будут заниматься последствиями перелома.

вот-вот. и будут продолжать это делать, пока не срастётся правильно ;) лиспом, хаскелем, скалой, эрлангом. пока прогресс не стронет с места закостенелых ретроградов и пораженцев

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

>На первый взгляд — примерно одинаково часто.

Я что-то не припомню чтобы в гноме что-то крешилось. Только Анюта на x86_64 разве что.

Гном и Кеды из стабильной Убунты, т.е. собирались из исходников одной и той же версией компилятора.

Дело не в версии компилятора. Дело в том что диспатчинг по динамической сигнатуре типа принципиально надежнее. И даже возможно быстрее, т.к. код более компактен ввиду отсутствия экспоненциального раздувания и поэтому попадает в кеш чаще.

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

> ХЗ. Я пользуюсь Hayoo. Более удобного поиска по API я не видел.

Да я к нему пытался прикрутить поиск более разнородной информации, если честно. Учитывая то, что работать пришлось в отпуске, дабы заказчик не начал делать предупредительные выстрелы в голову, мне пришлось шевелиться. И быстро. В результате отполз на другой «поисковик», сейчас вот думаю — то ди его докурочивать, то ли что-то другое и более оптимальное подискивать. На СLucene. http://sourceforge.net/projects/clucene/

В принципе, всё работает. но хочется добавить скорости, т.к. если начнётся обработка сравнительно больших объёмов, то лучше иметь запас по производительности. Всё с большим интересом смотрю в сторону mnogosearch. Привлекает поддержка постгреса «ис каропки». Но будем тестировать. Если что, то во вторую версию его впихнём. Благо, в Т.З. этот момент не оговорён.

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

> Только Анюта на x86_64 разве что.

Анька у меня есть где-то... Как-раз на x86_64, Gentoo. Анька версии 2.2.0, DevHelp к ней версии 0.21. Уверять что всё крайне стабильно не буду. Редко я пользуюсь этим, в основном, в gvim. Но крешей замечено не было.

Я что-то не припомню чтобы в гноме что-то крешилось.

Хммм... Да я вот то же удивляюсь сижу... Если честно... С «мультимедией» напрягов нет... Со всякой фигнёй типа утиля гномьего — то же. Эвольюшн (в отличие от ранних версий, когда он от косого взгляда на монитор, бывало, падал), подозрительно работоспособен... В общем, не знаю...

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

> пока прогресс не стронет с места закостенелых ретроградов и пораженцев

Гггг... Или пока не понапишут всего того же, что сейчас называют legacy и не упрутся в точно те же самые проблемы. Что и сейчас.

Помнится, всё «сычей-насильников» ретроградами обзывали «плюсовцы». Мы же, помнится, точно так же посмеивались в усы и отбрёхивались — «вот погодьте, придёт племя младое, незнакомое...» И оно пришло. Я про сишарповцев (как минимум). И теперь небо с овчинку уже у «плюсовцев».

Их прессуют. А нас... А чего нас прессовать... Мы ошибок в постфикс (например) как по-насажаем, так все и по-притихнут. И будут ждать пока починим — самим-то лезть «скушно». ;) Ну, это так... Пример... Чтоб понятно было... ;) Как вы не крутитесь, а пока legacy это С с С++, то хоть уставьтесь припарки трупу. Он нихрена не оживёт... :)))

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

> Только Анюта на x86_64 разве что.

Года два назад падала панель из-за какого-то аплета (да, действительно под x86_64). И были другие глюки. В конце концов ушёл на кеды. Но после выхода 4-х чуть не вернулся обратно.

Дело не в версии компилятора. Дело в том что диспатчинг по динамической сигнатуре типа принципиально надежнее.

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

Да и как мне кажется, основная причина и там, и там — обращение в неправильные области памяти вследствие разыменовывания некорректных указателей, разве нет?

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

>Можешь пояснить почему? Честно говоря внутренности GTK особо не рассматривал.

Компилятор может только проверить непротиворечивость программерских предположений о типе. А рантаймовый код проверяет фактический тип.

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

> а так же FORTRAN, APL, и Cobol. и?

А их по большей части прессовали «сычи». :) Допрессовались себе на голову... И мало, если честно, кода на этих языках в «общем употреблении». Могу заметить, что Пролог, например, по сию пору используют. Для анализа некоторых вещей. Но чтобы массово на нём писали... Такого нет.

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

> Но после выхода 4-х чуть не вернулся обратно.

Сейчас уже можно... :)

Года два назад падала панель из-за какого-то аплета (да, действительно под x86_64).

Есть подозрение на «часы». Там при неправильной сборке действительно возможны были глюки. Апплеты панели это частный случай bonobo-объектов. А в апплет «часы» интегрирвался по-моему, planner. Сейчас починили bonobo-объекты. Полегчало.

Но в те времена, если я не ошибаюсь, то если объекта planner'а на машине не было, то апплет падал. И мог потянуть за собой панель. Уверять на 100% что именно из-за этого не буду, но сам на это нарвался как-то. Лечилось это просто пересборкой апплета без поддержки планировщика.

Сейчас механизм бонобо объектов хорошенько подтесали таким образом, чтобы объекты приложений, в случае даже некорректной сборки, они бы не крешились. Да, действительно, там была проблема с разименованием объектов, если мне изменяет память.

Впрочем, это не более чем предположение, _утверждать_ что-либо я не могу. Дела давно минувших дней... Я уж обо всём этом и забыть-то успел... :)

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

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

Хаскель (в том числе) для того, чтобы отсекать тупых ПТУ-шников

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

Научный руководитель сказал пошел ты в жопу со своим хаскелем. Дайте же мне написать на хаскеле диссертацию!

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

>Научный руководитель сказал пошел ты в жопу со своим хаскелем. Дайте же мне написать на хаскеле диссертацию!

Что значит на хаскеле диссертацию? Я вот расчеты для диплома писал на хаскеле. И гавно твой руководитель, если ему не пох, на чем ты там это написал.

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

> Что значит на хаскеле диссертацию?

Не знаю, все об этом говорят когда речь заходит о

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

> Я вот расчеты для диплома писал на хаскеле.

Расчеты? Это типа цифродробилка? Мде. Ну, «на выброс» почему бы на Хаскеле и не написать.

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

Как раз для одноразовых расчетов, а не счетных программ, вещи, типа Хаскеля и подходят лучше всего.

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

>> Питон и хацкель одного поля ягоды

Ты действительно идиот или прикидываешся?

повторяю для танкистов: только идиот будет пользоваться языком в котором пробелы имеют значение.

хацкель и питон - пример таких идиотских языков

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

>Расчеты? Это типа цифродробилка? Мде. Ну, «на выброс» почему бы на Хаскеле и не написать.

ммм.. Ну смотри. Библиотечные численные методы мне были не особо нужны. А быстро написать прозрачную программу в хаскеле как раз просто. Тем более что код там нужен был так сказать пруф оф консепт.

Как раз для одноразовых расчетов, а не счетных программ, вещи, типа Хаскеля и подходят лучше всего.

Именно.

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

>повторяю для танкистов: только идиот будет пользоваться языком в котором пробелы имеют значение.

хацкель и питон - пример таких идиотских языков

Любой вменяемый человек должен понимать, что отступы - это все ерунда по сравнению с куда более важной семантикой. Это даже не самое главное в синтаксисе.

ЗЫ тем более, что можно использовать {} и таки забивать на отступы. И тот факт, что как-то все обычно юзают именно отступы, хотя есть выбор показывает, что это все-таки удобно.

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

>> хацкель и питон - пример таких идиотских языков

Любой вменяемый человек должен понимать, что отступы - это все ерунда по сравнению с куда более важной семантикой. Это даже не самое главное в синтаксисе.

ЗЫ тем более, что можно использовать {} и таки забивать на отступы. И тот факт, что как-то все обычно юзают именно отступы, хотя есть выбор показывает, что это все-таки удобно.

когда ты закрываешь скобку

a = [

что-то

]

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

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

> повторяю для танкистов: только идиот будет пользоваться языком в котором пробелы имеют значение. хацкель и питон - пример таких идиотских языков

Кресты тоже такие были (пробел в скобках темплейтов), но поправили. Чёрные властители из комитета реально заботяться о здоровье своих банальных рабов.

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

>повторяю для танкистов: только идиот будет пользоваться языком в котором пробелы имеют значение.

хацкель и питон - пример таких идиотских языков

Точно идиот :(

Пробелы имеют значение и в C, и в shell, и в ... Да почти везде!

А вот их количество - пожалуй только в питоне.

Вот только ПТУ-шнегу - быдлокодеру - это, похоже, не понять:)

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

хацкель и питон - пример таких идиотских языков

Точно идиот :(

Пробелы имеют значение и в C, и в shell, и в ... Да почти везде!

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

Вот только ПТУ-шнегу - быдлокодеру - это, похоже, не понять:)

чтойта много черезчур на ЛОРе в последнее время крутых интеллихентов... сраных мнящих себя образованными

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

Пиздеть не мешки ворочать.

Напишите годную программу на этом вашем хаскеле, там и поговорим.

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

А быстро написать прозрачную программу [...] просто

можно на чём угодно, лишь бы знания позволяли... :)

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

> Пиздеть не мешки ворочать.

Напишите годную программу на этом вашем хаскеле, там и поговорим.

мне писать на этом отстое? ты в своем уме?

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

>можно на чём угодно, лишь бы знания позволяли... :)

Хаскель тут чрезвычайно удобен. =)

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

> Не знаю. Тебе виднее что там у тебя болит. Или уже не болит, попривык поди?

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

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

> повторяю для танкистов: только идиот будет пользоваться языком в котором пробелы имеют значение.

В хаскееле можно выделять блоки пробелами/отступом, а можно использовать классические {} и ; для разделения того, что раньше делилось \n

Butt-hurt прошёл?

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

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

Э-э-э...

strlen("     ")

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