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...

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

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

>Одно и то же можно записать несколькими способами, чтобы можно было выбрать самый читабельный вариант.

Как по мне самый читабельный вариант - единственный вариант, даже в Си fun(a,b) и не иначе.

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

Тогда буду следить за новостями. Мне понравился журнал.

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

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

Python? Гвидо не больной. Он просто - из Голландии:)

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

> Саныч в топике про Haskell... Пропал ЛОР, совсем пропал.

Ну здесь-то он флудит и троллит, как обычно. А в каком-то флейме о Лиспе он куски кода и времена кидал O_o

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

>И чего? Из этого не следует её «необходимость».

Из этого следует некоторое ограничение языка, которого нет например в Схеме.

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

> Из этого следует некоторое ограничение языка, которого нет например в Схеме.

Схема динамически типизирована. Динамически типизированные языки - дерьмо by design и by definition. Вот так всё просто.

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

Синтаксический сахар это части синтаксиса, которые облегчают разработку, но не добавляют новых возможностей. ".",«$» и многое другое, что кажется частями синтаксиса, на самом деле функции(операторы можно считать инфиксными функциями), определенные в модуле Prelude с помощью обычного синтаксиса. f $ a = f a f . g = \x -> f (g x)

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

Кстати, когда в языке есть goto, правильно ли считать if-then-else синтаксическим сахаром? :)

balodja ★★★
()
Ответ на: комментарий от Sun-ch

Мои знания в языке Haskell сильно ниже среднего.

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

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

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

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

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

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

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

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

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

> Ох, да. Курс ВЫШЕЙ МАТИМАТИКЕ, лол. Без интегралов не обойтись.

Для обучавшихся в ПТУ анонимусов объясняю, что высшая математика - это не только интегралы. И, да - в логопеду.

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

> что высшая математика - это не только интегралы.

Это ново... Ей Богу! Это так ново! :)))

И, да - в логопеду.

/* с сомнением в голосе */ Может, лучше «К»??? :)))

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

>Ы! И что же это за ограничение? Реквестирую пример, где оно играет роль.

Пожалуйста: http://www.linux.org.ru/view-message.jsp?msgid=2399809

Динамически типизированные языки - дерьмо by design и by definition

Динамическая типизация не дерьмо, это фича такая.Она имеет свои преимущества и недостатки.

Также в минус Хаскелю отсутствие reflection.

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

> Синтаксический сахар это части синтаксиса, которые облегчают разработку, но не добавляют новых возможностей. ".",«$» и многое другое, что кажется частями синтаксиса, на самом деле функции(операторы можно считать инфиксными функциями), определенные в модуле Prelude с помощью обычного синтаксиса. f $ a = f a f . g = \x -> f (g x)

Я это и так знаю. Ты это к чему клонишь?

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

> Ы! И что же это за ограничение? Реквестирую пример, где оно играет роль.

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

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

>Схема динамически типизирована. Динамически типизированные языки - дерьмо by design и by definition.

«CL is strongly, statically, implicitly typed, with everything having type T.» (Ц) Erik Naggum

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

> Из этого следует некоторое ограничение языка, которого нет например в Схеме.

Как уже говорили, есть Template Haskell.

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

> (Ц) Erik Naggum

Он внебрачный сын Петросяна. Куда отнести тех, кто его цитирует, реши сам.

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

-- Пойдите и принесите!
-- Чего?
-- Пользу! Ну так идите же!
-- Есть?!
-- Неет, работать!..

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

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

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

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

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

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

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

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

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

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

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

tailgunner ★★★★★
()

этот тред - самый скучный фп-тред в мире.

p.s. закопайте хацкель, скоро миром будут править сисястые глазастые японские школьницы, пишущие в анимебунту на руби.

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

Жизненно необходимаю вещь - возможность патчить уже работающие процессы.

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

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

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

Элементарно. Причем тут вообще вид типизации?

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

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

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

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

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

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

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

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

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

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

Ну я всегда считал, что когда компилер видит вызов функции, возвращающую указатель на массив строк, то он генерит код для соотвествующих манипуляций со стеком? А что будет если новая функция в рантайм возратит что-то иное? Компилера в райтайме уже нету? Кто будет манипулировать стеком?

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

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

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

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

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

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

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

Случай из практики, наверное тут уже было про это, железка за 100 млн. км в космосе, нашелся критический баг. Софт был на лиспе и люди его запатчили удалено. Процедуру загрузки нового кода с Земли не было предусмотрено.

Сундук стоил >100 млн. долларов и выполнял миссию глубокого исследования космоса.

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

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

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

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

Вы правы.

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

>Случай из практики, наверное тут уже было про это, железка за 100 млн. км в космосе, нашелся критический баг. Софт был на лиспе и люди его запатчили удалено. Процедуру загрузки нового кода с Земли не было предусмотрено.

Надо еще привести пример про статически типированную Аду когда самолет летел на высоте 0 метров над уровнем моря (над Мертвым морем, Израиль) и программа написанная на самой такой строгой Аде поделилась на ноль. Или когда космический зонд поделился на ноль из-за того что старший бит прои@али при конверсии двойного слова в слово. Или про Фобос-1 потерянный из-за того что переменная на Фортране имела неправильный статический тип.

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

Советую посмотреть на сигнатуры фукций в System.Random

посмотрел. ок, при такой реализации вопросов нет

jtootf ★★★★★
()

какое счастье, что я этот haskell сдал :) принеприятнийшая штука, хотя кое-какие веши делаеть на нем в разы бистрее и проше.

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

>какое счастье, что я этот haskell сдал :)

Где если не секрет?

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

> Нам бы поржать... А то пинать тушку С# уже надоело... :))) А Вы нам свежатинки подкинули... :))) Премного благодарны... :))) В перерывах между программированием на С и прочими невинными развлечениями типа «зарабатывания денег», оно самое то... :)))

Так вот лучше бы вместо «поржать» взяли бы да и почитали HSoE или RWH, было бы куда больше пользы и себе, и окружающим. Ну, вы, конечно, вольны делать что хотите, но всё-таки...

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

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

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