LINUX.ORG.RU

Haskell 2010

 , , ,


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

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

Ответ на: Haskell 2010 от pitekantrop

Haskell 2010

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

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

capricorn20 ()
Ответ на: Re: Haskell 2010 от ott

Haskell 2010

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

dave ★★★★★ ()
Ответ на: Re: Haskell 2010 от rsync

Re: Haskell 2010

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

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

Led ★★★☆☆ ()
Ответ на: Haskell 2010 от balodja

Haskell 2010

>Если уж такая жуть и в правду понадобилась(во что я не верю),

Эта жуть взята методом копипаста из GHC Library Documentation.

capricorn20 ()
Ответ на: Haskell 2010 от capricorn20

Haskell 2010

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

balodja ★★★ ()
Ответ на: Haskell 2010 от balodja

Re: Haskell 2010

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

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

tailgunner ★★★★★ ()
Ответ на: Haskell 2010 от balodja

Haskell 2010

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

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

capricorn20 ()
Ответ на: Haskell 2010 от capricorn20

Re: Haskell 2010

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

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

tailgunner ★★★★★ ()
Ответ на: Haskell 2010 от capricorn20

Haskell 2010

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

balodja ★★★ ()
Ответ на: Haskell 2010 от pitekantrop

Re: Haskell 2010

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

anonymous ()
Ответ на: Re: Haskell 2010 от anonymous

Re: Haskell 2010

Исправил f $ a = f a

f . g = \x -> f (g x)

anonymous ()
Ответ на: Haskell 2010 от balodja

Haskell 2010

А ты наверное решил, что ты тут единственный эксперт по хаскелю?

Sun-ch ()
Ответ на: Re: Haskell 2010 от anonymous

Haskell 2010

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

balodja ★★★ ()
Ответ на: Haskell 2010 от Sun-ch

Haskell 2010

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

balodja ★★★ ()
Ответ на: Haskell 2010 от Mihai-gr

Re: Haskell 2010

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

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

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

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

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

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

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

anonymous ()
Ответ на: Re: Haskell 2010 от anonymous

Haskell 2010

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

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

twoflower ()
Ответ на: Haskell 2010 от twoflower

Re: Haskell 2010

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

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

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

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

anonymous ()
Ответ на: Haskell 2010 от balodja

Haskell 2010

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

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

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

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

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

capricorn20 ()
Ответ на: Re: Haskell 2010 от anonymous

Haskell 2010

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

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

pitekantrop ★★★ ()
Ответ на: Haskell 2010 от balodja

Haskell 2010

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

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

pitekantrop ★★★ ()
Ответ на: Re: Haskell 2010 от tailgunner

Re: Haskell 2010

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

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

Absurd ★★★ ()
Ответ на: Haskell 2010 от capricorn20

Haskell 2010

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

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

pitekantrop ★★★ ()
Ответ на: Re: Haskell 2010 от Absurd

Re: Haskell 2010

> (Ц) Erik Naggum

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

tailgunner ★★★★★ ()
Ответ на: Re: Haskell 2010 от ott

Haskell 2010

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

gns ★★★★ ()
Ответ на: Re: Haskell 2010 от anonymous

Haskell 2010

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

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

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

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

pitekantrop ★★★ ()
Ответ на: Haskell 2010 от capricorn20

Haskell 2010

> Template Haskell != Haskell

Вам шашечки или ехать?

pitekantrop ★★★ ()
Ответ на: Haskell 2010 от pitekantrop

Re: Haskell 2010

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

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

anonymous ()
Ответ на: Re: Haskell 2010 от anonymous

Re: Haskell 2010

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

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

tailgunner ★★★★★ ()

Haskell 2010

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

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

volh ★★ ()
Ответ на: Haskell 2010 от balodja

Haskell 2010

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

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

Sun-ch ()
Ответ на: Haskell 2010 от Sun-ch

Re: Haskell 2010

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

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

tailgunner ★★★★★ ()
Ответ на: Haskell 2010 от pitekantrop

Re: Haskell 2010

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

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

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

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

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

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

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

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

anonymous ()
Ответ на: Re: Haskell 2010 от tailgunner

Haskell 2010

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

Sun-ch ()
Ответ на: Haskell 2010 от pitekantrop

Re: Haskell 2010

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

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

Absurd ★★★ ()
Ответ на: Haskell 2010 от Sun-ch

Haskell 2010

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

mv, перелогиньтесь.

balodja ★★★ ()
Ответ на: Re: Haskell 2010 от anonymous

Re: Haskell 2010

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

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

anonymous ()
Ответ на: Haskell 2010 от balodja

Haskell 2010

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

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

Sun-ch ()
Ответ на: Re: Haskell 2010 от anonymous

Re: Haskell 2010

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

anonymous ()
Ответ на: Re: Haskell 2010 от Absurd

Re: Haskell 2010

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

Вы правы.

anonymous ()
Ответ на: Haskell 2010 от Sun-ch

Re: Haskell 2010

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

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

Absurd ★★★ ()
Ответ на: Re: Haskell 2010 от anonymous

Haskell 2010

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

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

jtootf ★★★★★ ()

Haskell 2010

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

anonymous ()
Ответ на: Haskell 2010 от anonymous

Haskell 2010

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

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

capricorn20 ()
Ответ на: Re: Haskell 2010 от anonymous

Re: Haskell 2010

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

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

anonymous ()
Ответ на: Haskell 2010 от capricorn20

Re: Haskell 2010

RTFM: SYB

anonymous ()
Ответ на: Haskell 2010 от balodja

Haskell 2010

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

Sun-ch ()
Ответ на: Haskell 2010 от Sun-ch

Haskell 2010

Я не совсем понимаю, к чему ты клонишь.

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