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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Именно.

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

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

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

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

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

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

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

:)) Потому что даже труХацкелям уже не интересно защищать этот труп программерской мысли, смытый мэйнстримом в канаву. Хацкель умрёт как десятки извращенческих творений из 70-ых - Лиспы, PL/1, Prolog, Cobol... Иногда у меня было ощущение, что где-то организовали скрытый конкурс: кто извратнее придумает язык, обоснованный математически. Победили все, кроме Си. :)

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

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

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

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

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

a = [

что-то

]

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

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

>Потому что даже труХацкелям уже не интересно защищать этот труп программерской мысли

Не интересно потому, что критиканы тут умом не блещут. И ничего кроме про отступы сказать не придумали.

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

> Не интересно потому, что критиканы тут умом не блещут. И ничего кроме про отступы сказать не придумали.

Ну почему же не интересно? Мне интересно, куда заведет чайника кривая идиотизма. Матумба вон пример того, что идиотизму пределов нет.

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

>> Процесс, сошедший с ума от того что 65535 + 1 = 0 это не спасет.

Мля. А процесс, который получит TypeError, передав строку «Привет!» в sqrt что-нибудь спасет?

А я-то думал что тем что «Переполнение включено в определение для типа short» ты имел в виду что сумма 65535 и 1 на кольце вычетов по модулю 2^16 дает ноль и это правильно. А оказывается, ты имел в виду что «то что статическая типизация практические ошибки не ловит это не важно. Зато она строгая». BTW, в во всем таком динамическом лиспе (sqrt «Привет») равно как и (lambda (arg) (declare (type string arg)) (sqrt arg)) дают серьезные варнинги еще при трансляции.

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

> я-то думал что тем что «Переполнение включено в определение для типа short» ты имел в виду что сумма 65535 и 1 на кольце вычетов по модулю 2^16 дает ноль и это правильно.

Именно это я и имел в виду.

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

Нет, эту странную чушь думаешь ты.

BTW, в во всем таком динамическом лиспе (sqrt «Привет») равно как и (lambda (arg) (declare (type string arg)) (sqrt arg)) дают серьезные варнинги еще при трансляции.

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

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

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

С другой стороны, в природе существует и широко используется язык, в котором пробелы не имеют значения. Правда называется он при этом перлом, и его вспоминают каждый раз, как только речь заходит о write-only коде.

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

>> BTW, в во всем таком динамическом лиспе (sqrt «Привет») равно как и (lambda (arg) (declare (type string arg)) (sqrt arg)) дают серьезные варнинги еще при трансляции.

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

export template, знаешь ли, в С++ не работает, поэтому наиболее практичный подход - те же массивы вариантов гонять. А в хаскеле, насколько я понимаю его концепт, раздельная компиляция отсутствует как класс вообще - из груды исходников рождается блоб.

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

> export template, знаешь ли, в С++ не работает

добро пожаловать в 21-й век, в С++ уже есть и лямбды, и вывод типов, и extern templates и многое другое( и все это вы найдете реализованное в gcc )

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

>> export template, знаешь ли, в С++ не работает

в С++ уже есть и ... и extern templates ...

А для них уже есть бинарный протокол или это только маскировка зависимостей?

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

>>> BTW, в во всем таком динамическом лиспе (sqrt «Привет») равно как и (lambda (arg) (declare (type string arg)) (sqrt arg)) дают серьезные варнинги еще при трансляции.

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

export template, знаешь ли, в С++ не работает

«В огороде бузина, а в Киеве дядька» (c)

Ты не стал ни на йоту более вменяемым с нашего последнего разговора.

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

>добро пожаловать в 21-й век, в С++ уже есть и лямбды, и вывод типов, и extern templates и многое другое( и все это вы найдете реализованное в gcc )

И все это как всегда в незрелом костыльном варианте. Только усложняет и без того сложный язык.

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

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

export template, знаешь ли, в С++ не работает

Ты не стал ни на йоту более вменяемым с нашего последнего разговора

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

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

> А в хаскеле, насколько я понимаю его концепт, раздельная компиляция отсутствует как класс вообще - из груды исходников рождается блоб.

Надо было добавить «в адских муках».

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

> Мне бы хотелось типизацию, которая по умолчанию гарантировала бы отсуствие ошибок из-за несовпадения типов во время исполнения, и позволяла бы _потенциально_ небезопасные операции только в соответствующим помеченных модулях. А пока остается ждать, что хоть какой-нибудь «безопасный Си» доберется до мэйнстрима, и надеяться, что какие-нибудь еретики прикрутят статическую типизацию к Питону.

И с автоматическим coverage testing, unit testing, regression testing, load testing. Чёткий был бы язык! Был. Бы.

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

> добро пожаловать в 21-й век, в С++ уже есть и лямбды, и вывод типов, и extern templates и многое другое( и все это вы найдете реализованное в gcc )

Того и глядишь, к 22-му веку добавят динамическое обновление кода, макросы а-ля лисп и ридтейбл. Правда, совместимости ради постараются запихнуть всё это в рамки существующего синтаксиса, поэтому крестовый код будет мало отличаться от брейнфака.

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

> Хацкель умрёт как десятки извращенческих творений из 70-ых - Лиспы, PL/1, Prolog, Cobol...

Невежество! Быстро в бобруйскую академию сельского хозяйства!

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

> Можно подумать, он сейчас еще чем-то отличается...

Сейчас просто fuck, а будет ещё и brain.

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

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

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

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

>> Мне бы хотелось типизацию, которая по умолчанию гарантировала бы отсуствие ошибок из-за несовпадения типов во время исполнения, и позволяла бы _потенциально_ небезопасные операции только в соответствующим помеченных модулях. А пока остается ждать, что хоть какой-нибудь «безопасный Си» доберется до мэйнстрима, и надеяться, что какие-нибудь еретики прикрутят статическую типизацию к Питону.

И с автоматическим coverage testing, unit testing, regression testing, load testing

SystemTap зохавал твой моск O_o

Чёткий был бы язык! Был. Бы.

Прикол в том, что язык вполне реализуем :/

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

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

С другой стороны, в природе существует и широко используется язык, в котором пробелы не имеют значения. Правда называется он при этом перлом, и его вспоминают каждый раз, как только речь заходит о write-only коде.

Perl - самый красивый из всех языков программирования.

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

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

>Perl - самый красивый из всех языков программирования.

Эм... ну да ладно. Как хотите =). Для скриптов в ~50 строчек может быть. Но не более.

Waterlaz ★★★★★
()

--Верно на 2009г.
Лишь услышит раб анальный
Что язык функциональный -
Раб покажет свой язык
Он иначе не привык

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

>Мне бы хотелось типизацию, которая по умолчанию гарантировала бы отсуствие ошибок из-за несовпадения типов во время исполнения, и позволяла бы _потенциально_ небезопасные операции только в соответствующим помеченных модулях.

Use DSL, Luke! Типы времени исполнения бывают разные... Иногда хочется «5» считать int, а иногда 10 не считать *правильным* int.

По идее, ООП с этой проблемой должно было бороться. Но вот они к классам помимо собственно типов еще прикрутили интерфейс и поведение.

Да еще менстрим языки забили на модули.

Очень помог бы простой язык с мощной системой модулей. А-у-у Ви-ии-ирт! Много бы чего порешалось... Тут и раздельная компиляция. И интерфейсы, описание которых вполне можно свалить вообще на другой язык. И не было бы необходимости в костылях типа OSGI.

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

>Прикол в том, что язык вполне реализуем :/

Просто его не сделаешь, а от сложных технологий всегда следует ожидать более высокой хрупкости.

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

>> Мне бы хотелось типизацию, которая по умолчанию гарантировала бы отсуствие ошибок из-за несовпадения типов во время исполнения, и позволяла бы _потенциально_ небезопасные операции только в соответствующим помеченных модулях.

Use DSL, Luke!

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

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

> Мастер Йода, вы не поняли, что мне нужен язык программирования общего назначения? Только не надо штампов о том, что «универсальных языков программирования не бывает».

Мну в последнее время склоняется к мнению (подкреплённое опытом =), что трёх языков таки достаточно =) Причём, два из них можно почти не использовать.

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

>> Мастер Йода, вы не поняли, что мне нужен язык программирования общего назначения? Только не надо штампов о том, что «универсальных языков программирования не бывает».

Мну в последнее время склоняется к мнению (подкреплённое опытом =), что трёх языков таки достаточно =)

Мну склоняется к мысли, что достаточно двух. Но это должны быть нормальные языки, а не DSL.

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

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

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

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

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

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

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

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

>Perl - самый красивый из всех языков программирования.

В 1000-ый раз: «Кому и кобыла - невеста»

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

>Очень помог бы простой язык с мощной системой модулей. А-у-у Ви-ии-ирт! Много бы чего порешалось... Тут и раздельная компиляция. И интерфейсы, описание которых вполне можно свалить вообще на другой язык. И не было бы необходимости в костылях типа OSGI.

Borland Pascal? Google Go?

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

>нужен язык программирования общего назначения

Хочешь язык, который бы поддерживал типизацию как при компиляции, так и при исполнении, да еще и с динамической типизацией. И общего назначения? Да еще с блек^W с выводом типов, динмически, во время исполнения? Да еще с расширяемой системай типов (всмысле расширяемый так, чтобы «базовые» типы ничем не отличались от «пользовательских»)? Да еще с компиляцией в нативный код? Да так, чтобы не тормозило?

Можно попробовать сварганить трансляцию в несколько промежуточных языков, каждый из которых будет решать свою задачу. Например, gcc4 так и делает. ЕМНИП в два, не считая машинного кода...

Но не бывает такого. И не будет.

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

>Borland Pascal? Google Go?

Не поминай паскаль всуе. Я болше имел ввиду Oberon и ComponentPascal.

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

> Хочешь язык, который бы поддерживал типизацию как при компиляции, так и при исполнении, да еще и с динамической типизацией. И общего назначения? Да еще с блек^W с выводом типов, динмически, во время исполнения? Да еще с расширяемой системай типов (всмысле расширяемый так, чтобы «базовые» типы ничем не отличались от «пользовательских»)? Да еще с компиляцией в нативный код? Да так, чтобы не тормозило?

Нет, не хочу. Мне нужен язык программирования, а не список эротических фантазий.

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

>Мне нужен язык программирования

А такой язык программирования - не эротическая фантазия, значит?

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

> Нет, не хочу. Мне нужен язык программирования, а не список эротических фантазий.

Потерпи ещё чуток, до пенсии недолго осталось. Там и эротические фантазии исчезнут, и языки не нужны будут =)

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

> А такой язык программирования - не эротическая фантазия, значит?

Какой «такой» - «безопасный» Си? Это уже реальность. А дозволение небезопасных операций только в помеченных модулях тривиально реализуемо.

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

> дай угадаю: ассемблер, си, (затрудняюсь, что-то высокоуровневое, например лисп) - не?

Йеп, кэптэйн!

mv ★★★★★
()

«Нужен язык программирования, который бы (a., b., c.,)»
ДА НАХУЯ ОН ВАМ?
лисп жэ
хаскел жэ
путхон жэ
осамл жэ
овжэсивэ с жэ
пэхэпэ жэ
И ещё дерьма вагон и маленькая тележка.

И - НИ ОДНОЙ ПРОГИ - интересной, самостоятельной! ВСУХУЮ!



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