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

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

Имеет ли смысл сейчас изучать этот язык? И если да - для каких целей он в основном используется?

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

>По ссылке половина владельцев тикетов - с @microsoft.com. Подозрительно.

Голактеко опасносте! (или в мс тоже люди работают)

k0l0b0k ★★
()

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

Только не очень понял насчет if-else: разве сейчас их нельзя на одном уровне располагать?

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

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

>И если да - для каких целей он в основном используется?

Если бы мне снова было 18 лет - то наверное послал бы нах*й всех долбо*бов с их сраными Дельфами, Билдерами и Жабами, а основательно бы изучал SICP и какой нить ЛИСП.

Klausd
()

Язык выдуманный в больном бреду. пробовал я xmonad, там конфиг на этом недоязыке

пишем что-то = [

что-то

]

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

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

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

Это вроде практикуется если забыть поставить еще со времен Basic самой MS

anonymous
()

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

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

Да что вы на этот синтаксис набросились? Ну да, ну отступы играют роль. Но во-первых это может быть удобно, при настроенном редакторе, а во=вторых там есть альтернативный синтаксис с {} и ; на который отступы не влияют. Но почему-то его мало используют.

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

Работают-работают... :) Сделали же они из окамла F#. Вот можд теперь и за хаЦкель решили взяться... :)

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

>Имеет ли смысл сейчас изучать этот язык?

это очень серьезная и толстая заявка на мегасрачнй тред :) в жж дошли до 1400 постов вроде

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

Язык интересен очень фичастым компилятором. Если научиться обращать его мощь во благо (аминь:))), то можно сильно облегчить себе жизнь.

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

> Хаскель разрабатывается в MS Research, по большей части, насколько я знаю

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

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

Только не очень понял насчет if-else: разве сейчас их нельзя на одном уровне располагать?

нельзя. else должен иметь на один отступ больше

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

> По ссылке половина владельцев тикетов - с @microsoft.com. Подозрительно.

А Haskell разрабатывается во многом Microsoft Research, причём под GPL и для линукса. Странно, но факт.

anonymous_incognito ★★★★★
()

а там можно нормально матричную алгебру сделать?

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

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

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

Да что нам большая аудитория?

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

ЗЫ и питон даже хвостовую рекурсию не оптимизирует и многострочные лямбды не поддерживает. Трудно его назвать функциональным.

Waterlaz ★★★★★
()

Haskell98 писать было проще. вот нет до Haskell'10 сократить, что ли

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

>а там можно нормально матричную алгебру сделать?

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

можно конечно.

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

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

а что в этом плохого?

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

хаскел скоро превратится в APL

да нет, с чего бы?

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

obvious fix

проприетарный язык - это что-то новое. или ты в смысле, что единственная реализация проприетарная? ну так для haskell это уже не проканает - есть uhc, lhc, jhc, yhc и %you favorite letter*hc

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

> или ты в смысле, что единственная реализация проприетарная?

Ты знал, ты знал.

ну так для haskell это уже не проканает

Да как сказать. GHC под GPL? Если нет, то сценарий закрытия вполне очевиден.

tailgunner ★★★★★
()
Ответ на: комментарий от jtootf
abs' x =
    if x < 0
    then -x
    else x

Если вот так написать, то нормально компилируется (GHC 6.10.4). Здесь ведь всё (if, then, else) на одном уровне? Или я неправильно трактую понятие «уровень»?.

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

>Да как сказать. GHC под GPL? Если нет, то сценарий закрытия вполне очевиден.

Там по моему BSD или что-то в этом духе.

Waterlaz ★★★★★
()

>PatternGuards

Фигасе, этого не было в стандарте?!

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

Тогда при желании MS сделает с хаскелем тот же трюк, что и с окамлем.

выпустит урезанный haskell под .net под названием h#? и как это повлияет на оригинальный ocaml/haskell?

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

> выпустит урезанный haskell под .net под названием h#?

В чем-то урезанный, в чем-то расширенный, с поддержкой в MSVS и доступом к платформе. Переведет своих штатных прогеров на него.

и как это повлияет на оригинальный ocaml/haskell?

Это зависит от рекламных вложений. В худшем случае, люди начнут писать на Ха# программы, гвоздями прибитые к .NET и компилятору MS. И в массы пойдет еще один vendor lockin.

А оригинальный Хаскел потеряет разрабов и вернется в полную маргинальность.

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

А оригинальный Хаскел потеряет разрабов и вернется в полную маргинальность.

чёрт меня возьми, пусть M$ поскорее выпустит H#! да я им доплачу за это! :)

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

> а что, все питонщики такие безжалостные?

Не, это личное. Не люблю camelCase :)

tailgunner ★★★★★
()

IMHO у этого язычка только 2 функции: 1. Защита кандитатских и докторских; 2. Инфракрасноглазие. Как язык для прикладного программирования, с таким мозгоразрывающим синтаксисом, абсолютно не годится. Вывод в топку!

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

Как язык для прикладного программирования, с таким мозгоразрывающим синтаксисом, абсолютно не годится

vsl

Что значит «слишком сложен»? Я привел характеристики языков по значимому для меня набору критериев. Я осознаю, что существуют безмозглые п..ы, у которых в список значимых кримериев может входить, к примеру, синтаксис языка. Hу так накласть мне на них. Меня интересуют объективные критерии, а не цацки всякие.

да, синтаксис - это ужасно

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

>да, синтаксис - это ужасно

Забыл добавить слово «особенно» перед «с таким». Кстати если дело не в функциональщине вообще и синтаксисе в частности, то почему нету тонн софта на хаскеле? Окромя хманада (легкий оконный менеджер с зависимостями на 200 Мб, ага) и даркса нету нифига…

fat_angel ★★★★★
()

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

Вот как со мной было. В школе нам давали только BASIC. Когда я пошел на подготовительные курсы в институт, там был Паскаль. Я был шокирован: указание типов переменных?, точки с запятой в конце?! Как всё сложно! Потом привык.

Далее — С. Что это за звездочки? Умножение? Нет? Что еще за указатели?! Потом разобрался.

Далее — Java. Private? Public? Как много странных слов! Потом и это освоил.

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

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

> Кстати если дело не в функциональщине вообще и синтаксисе в частности, то почему нету тонн софта на хаскеле?

Потому что дело в функциональщине вообще. А синтаксис Хаскеля не так уж и плох (он хотя бы есть).

tailgunner ★★★★★
()

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

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

Да не в сиснтаксисе дело даже. Разница между басиком, паскалем и ц незначительна ибо парадигма одна — императивная, даже разница между императивной парадигмой и ООП'ом не такая большая как между ними вместе взятыми и функциональщиной. Чтоб вкурить в нее (функциональщину) надо понять λ-исчисление для чего лично мне надо вспомнить весь курс высщей математики, а это давно было между прочим. И все это ради прикладного программирования (серьезные алгоритмы в данный момент мне мало интересны)?

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

>Потому что дело в функциональщине вообще.

Вот и я очем, она нужна только профессорам и их красноглазым студентам.

А синтаксис Хаскеля не так уж и плох (он хотя бы есть).


Для функционального языка наверное…

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