LINUX.ORG.RU

Вышел язык программирования Racket 7.0

 , ,


4

3

Racket - это язык программирования общего назначения, а также первая в мире экосистема для языко-ориентированного программирования.

Racket версии 7.0 включает существенные изменения в рамках долгосрочных целей замены текущей системы времени выполнения и поддержки множества систем времени выполнения. Предполагается, что пользователи Racket не почувствуют большой разницы между Racket 6.12 и Racket 7.0, но в связи с тем, что реализация претерпела серьёзные изменения, увеличен именно старший номер версии.

Ядро версии 7.0 является результатом переработки ядра версии 6.12 более чем на 1/8, и включает новый механизм раскрытия макросов, который осуществляет бутстрэппинг самого себя. Данный механизм покрывает более 40% кода, необходимого для замены ядра Racket на Chez Scheme. Остальные 60% кода, по бОльшей части, также реализованы, но не включены в этот выпуск; мы надеемся и предполагаем, что Racket-на-Chez будет готов для промышленного использования в следующих выпусках ветки 7.x

  • Синтаксис формы (`#'`) поддерживает новые шаблоны подформ: ~@ - для сплайсинга, и ~? - для выбора между подшаблонами, основанного на возможном «отсутствии» значения у переменных образца (например, у образца ~optional в syntax-parse). Библиотека syntax/parse/experimental/template, откуда происходят эти возможности, экспортирует новые формы под старыми именами для совместимости.
  • На Windows флаг --embed-dlls команды raco exe создаёт по-настоящему автономный исполняемый файл ".exe", который содержит в себе разделяемые библиотеки Racket.
  • Опция «Create Executable» интегрированной среды разработки DrRacket для учебных языков (Beginner Student, и т.п.) использует флаг --embed-dlls на Windows.
  • Поддержка prefab («previously fabricated») структур в Typed Racket существенно улучшена, что делает их более полиморфными, исправляя, вместе с тем, существенные ошибки текущей реализации. Программы, которые сейчас используют предикаты для prefab-структур неизвестных данных, могут нуждаться в ревизии, т.к. предыдущие версии Typed Racket позволяли программам с потенциальными ошибками осуществлять проверку типов. Смотрите Typed Racket RFC 1 и prefab-changes для более подробной информации об этом изменении, и о том, как исправить программы, которые подверглись влиянию в связи с этим изменением.
  • Typed Racket поддерживает #:rest-star в конструкторе типов ->*, что позволяет функциональным типам указывать в хвостовом списке аргументов (rest arguments) более сложные образцы типов, такие как функция hash.
  • Интерактивные оверлеи могут быть наложены на графики, созданные с помощью plot-snip. Это позволяет создавать интерактивные графики или отображать дополнительную информацию, когда указатель мыши находится над областью графика. Примеры использования данной возможности можно посмотреть тут.
  • racket/plot предоставляет процедуры для отображения графиков японских свечей (candlestick charts), которые могут быть использованы в финансовом анализе временных рядов.
  • Добавлен contract-equivalent?, который проверяет, что два контракта являются взаимосильными, без экспоненциального замедления, которое имеет место в случае двух вызовов contract-stronger?.
  • Lazy Racket поддерживает функции с именованными аргументами.

>>> Оригинал



Проверено: jollheef ()
Последнее исправление: Deleted (всего исправлений: 1)

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

Кстати, замечательный пример, как борьба с ограничениями CL ломает программу ещё больше.

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

Рантайм, и всё тут.

Англицизмы при наличии русского аналога всегда плохо.

Иначе скоро будем общаться как эмигранты в США:

релизнулся лэнгвидж программинга рэкет 7.0

Racket версии 7.0 инклюдит субстантивные интернальные изменения по пути долгосрочных гоалов замены текущего рантайма и суппорта множественных систем рантайма.

monk ★★★★★
()

Но мне до сих пор не понятно, почему эта новость имеет статус мини-новости? Из какой-нибудь библиотеки какого-нибудь индивидуума могут сделать новость, а тут релиз целого языка как мини-новость. Лол. Ув. jollheef, зачем ты сделал из новости мини-новость, а?

azelipupenko
() автор топика
Ответ на: комментарий от monk

Racket версии 7.0 инклюдит субстантивные интернальные изменения по пути долгосрочных гоалов замены текущего рантайма и суппорта множественных систем рантайма.

Если брать пример с участников всяких конференций, то будет так:

Racket вершион 7.0 инклюдит субстантивные интернальные ченджи по вэй лонгтайм гоалов ченджи текущего рантайма и суппорта мульти-систем рантайма.

azelipupenko
() автор топика
Ответ на: комментарий от monk

Остапа понесло. Рантайм это не англицизм, а словечко из арго программистов. Если ты в общении с другими погромистами используешь «время выполнения», то честь тебе и хвала за чистый разговорный русский. В тексте новости, согласен, «рантайм» неуместен.

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

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

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

Не понимаю, почему к нему такое негативное отношение?

Потому что его постоянно откапывают, когда его давно пора закопать. Всё нужное есть и в Фортране, Алгол 68 по сей день смотрится неплохо, наверняка найдутся и сумасшедшие фанаты Кобола, можно писать и на это всём, только зачем? Тем более, что его уже лет 10 как закопали в винде, а откапывают в линуксе, где он никогда не был нужен, и где его ниша давно занята плюсами.

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

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

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

Ну и у меня для тебя невероятное открытие, не падай в обморок, если Асм не встраивать, а писать целиком на нём, то производительность будет вообще эпическая, и никакой Бейсик не нужен.

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

Алгол 68 по сей день смотрится неплохо

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

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

Всё нужное есть и в Фортране

Нет. На Фортране можно писать только числодробильные приложения с минимумом интерфейса. Паскаль вполне пригоден для домашних проектов с GUI (и не только домашних, как показал анонимус выше), если человек не желает использовать питон, что можно понять.

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

Ещё 2008 есть, который только в прошлом году, наконец, Intel реализовал до конца в своём компиляторе.

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

l это «face text» в терминологии Red, по-суть это объект отображающий текст, лейбл.

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

На каждую комбинацию создаётся запись в хэш-таблице, которая никогда не удаляется. Не очень хорошая идея.

Ну, автор библиотеки - редиска, такое встречается, да.

Кроме того, (add-border (add-border frame%)) сделать можно (и получить окно с двумя рамками), а в mix такое уже никак.

Конечно никак, у тебя ведь здесь уже очевидная композиция, а не наследование. Только причем здесь lisp-1 vs lips-n? Никто не мешает тебе манипулировать классами как значениями

(let ((class (make-instance 'standard-class)))
  (make-instance (add-some-magic class)))

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

Ты вообще о чём, болезный? Язык ни жив ни мёртв, опять играешь в дурачка, игнорируя смысл мной написанного. При сильном желании хватит и f95 (там вроде уже можно OpenMP), если уж ты настаиваешь.

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

Домашние прокты just for fun можно, наверное, и на брейнфаке писать. Выбор инструмента должен основываться на стоящей задаче. Какую задачу паскаль решает лучше других?

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

Паскаль вполне пригоден для домашних проектов с GUI

Возможно. Но зачем себя мучать, когда Tcl/Tk уже существует?

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

Ты вообще о чём, болезный?

Не груби, здоровенький. Я вежливо спросил тебя, в каком именно Фортране есть «всё нужное».

При сильном желании хватит и f95

Так вот, Racket отличается от абстрактного Lisp больше, чем Фортран II от Фортран 95. Только недоучки типа тебя могут говорить про «постоянно откапывают».

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

по фортрану рекомендую Chapman S.J. - Fortran for Scientists and Engineers - 2018 подойдёт даже для самых начинающих

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

В чём мучение-то? Если человек с детства знает Паскаль, зачем ему что-то ещё (для собственных проектов, повторяю).

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

так можно про любой (особенно производный от паскаля) сказать если есть среда разработки

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

Ветку не читай, ответы пиши.

FreePascal. Без шуток. Не понимаю, почему к нему такое негативное отношение?
Потому что его постоянно откапывают, когда его давно пора закопать.

Сппциально для тебя, если по ветке ходить разучился.

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

И не абстрактный Лист, а вполне конкретный сабж, который юзается в для противопоказания Паскслю.

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

Ну чудики разные бывают. Некоторым и бэйсика со спекртумом из детства достаточно.

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

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

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

Напоминаю, на что я отвечал:

его (Паскаль) давно пора закопать. Всё нужное есть и в Фортране

Поэтому сравниваем с Фортраном. Теперь твой вопрос:

Какую задачу паскаль решает лучше других?

Задачу, по-моему, всё-таки решает человек, а не язык программирования. Для каких задач паскаль лучше фортрана — я написал выше: небольшие полезные программы с человеческим интерфейсом, основное свойство которых в том, что они достаточно надёжно и быстро работают, а не в том, что они написаны на экзотическом языке типа брейнфака. Или я не понял вопрос.

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

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

Из интереса я уже писал пару хеллоувордов на Фортране. Кроме удовлетворения необузданного желания найти приключений на свою задрицу, не вижу смысла применять его где бы то ни было.

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

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

это ты про Object Pascal (fpc) или про про Pascal (1970)?

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

Омг. Интерпретируй мои каменты любым образом, который тебе гномики в голове подсказывают, только отстать от меня. Мало твоего синдрома вахтёра, как ты и ещё со своими фантазиями пристаёшь.

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

Из интереса

так я же и говорю, что тебе не нужен.

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

кто бы сомневался, ментальное школоло

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

Не надо сравнивать с Фортраном, сравнение с фортраном, Алголом и Коболом (Коболом, Карл) — это был инструмент для сведения к абсурду.

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

Пока ты отвечал, я зашёл в вики Lazarus и нашёл там прикольный проект: http://simthyr.sourceforge.net/

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

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