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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.