Софт-Портал

Racket Язык Программирования

Рейтинг: 4.0/5.0 (16 проголосовавших)

Категория: Windows

Описание

LISP: Clojure

Группа

Learn #clojure #fundamentals For #beginners - Course Intro
https://youtu.be/9ERTMBoIH_k
Our Clojure tutorial is a comprehensive course designed to equip you with the conceptual understanding of Clojure and help you learn this terse language. In addition to Clojure, you will learn what is a Lisp dialect, what is Lambda Calculus, how are these terms related to Clojure. Then, you’ll delve into Clojure and its components including abstractions, forms, symbols, macros, functions, lists, vector types, sequences, data structures, etc.

Чуваки, помогите нубу
Как изменить элемент строки по индексу
(funcname "test" 0 \w)
west

Пол Грем, известный популяризатор лиспа и сооснователь Ycombinator, больше не предлагает использовать Common Lisp:

Racket язык программирования:

  • скачать
  • скачать
  • Другие статьи, обзоры программ, новости

    Racket (язык программирования)

    Racket (язык программирования)

    Racket (англ.   racket  — рэкет, ранее — PLTScheme) — мультипарадигменный язык программирования общего назначения, принадлежащий семейству Lisp /Scheme. Одно из предназначений racket — создание, разработка и реализация языков программирования [3] [4]. Язык используется в различных контекстах: как скриптовый язык. как язык общего назначения, в обучении информатике, в научных исследованиях.

    Платформа предоставляет пользователю реализацию языка Racket, включая развитую среду выполнения (англ.   run time system ) [5]. различные библиотеки, JIT-компилятор и т. д. а также среду разработки DrRacket (ранее известную, как DrScheme) написанную на Racket [6]. Эта программная среда используется в учебном курсе ProgramByDesign [en] массачусетского технологического института [7] [8]. Основной язык Racket отличает мощная макросистема. позволяющая создавать встраиваемые и предметно-ориентированные языки программирования, языковые конструкции (к примеру классы и модули ) и диалекты Racket с различной семантикой [9] [10] [11] [12] .

    Система является свободным и открытым ПО. распространяемым на условиях LGPL. Расширения и пакеты, написанные сообществом, доступны на PLaneT [13]. веб-дистрибутиве системы [14] .

    История Создание

    Matthias Felleisen [en] основал компанию PLT Inc. в середине 1990-х, первоначально - как исследовательскую группу, а вскоре - проект по производству педагогических материалов для начинающих программистов (лекции, упражнения/проекты, программное обеспечение). В январе 1995 было решено разработать учебную среду программирования на языке Scheme. Matthew Flatt [en] собрал MrEd, оригинальную виртуальную машину Racket, используя libscheme, wxWidgets и некоторые другие свободные системы [15]. В течение последующих лет команда, в которую входили, в частности, Flatt, Robert Bruce Findler [en]. Shriram Krishnamurthi [en]. Cormac Flanagan, и многие другие выпускали среду DrScheme предназначенную для начинающих программистов-схемеров и исследований в области мягкой типизации (комбинации статической и динамической типизации ) [6]. Основной язык программирования, поддерживаемый средой назывался PLT Scheme.

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

    DrScheme был дополнен учебными языками. пошаговый алгебраический вычислитель (англ.   algebraic stepper ) [16]. прозрачный REPL -цикл, подсистему печати на основе конструкторов (cons) и множество других нововведений, которые сделали DrScheme качественным образовательным продуктом. В 2001 году разработчиками языка была написан и опубликован учебник How to Design Programs [en]. основанный на их философии обучения программированию.

    Развитие DrScheme

    В первое поколение версий DrScheme были введены средства для программирования в большом [en] c использованием модулей и классов. В версии 42 были добавлены юниты: система модулей — объектов первого класса. позволяющая дополнять модули в процессе разработки больших систем [17]. Система классов была с одной стороны дополнена (в частности интерфейсами в стиле Java ), а с другой — сокращена (в частности было удалено множественное наследование ) [10]. Язык развивался на протяжении ряда последовательных версий и набрал популярность к версии 53, что ещё ускорило работу над ним и следующая версия 100, стала эквивалентом «1.0».

    В следующую крупную ревизию, получившую номер 200, была введена новая модульная система по умолчанию, интегрированная с макросами [17]. В частности, модульная система гарантирует, что вычисления время выполнения и вычисления времени компиляции разделены для поддержки «башни языков» [18]. В отличие от юнитов, эти модули не являются объектами первого класса .

    В версию 300 введена поддержка Unicode. библиотека интерфейса с внешними функциями [en] и изменена система классов [17]. Позднее для релизов версии 300 была улучшена производительность путём добавления JIT-компилятора и сборки мусора с поддержкой поколений объектов .

    К следующему мажорному релизу DrScheme перешёл на общепринятую систему нумерации версий на основе десятичных дробей. В версию 4.0 введено сокращение #lang для указания [под]языка, на котором написан модуль. Также в этот релиз введены неизменяемые пары и списки, поддержка мелкозернистого параллелизма. и статически типизированный диалект [19] .

    Racket

    7 июня 2010 года, PLT Scheme был переименован в Racket [20]. что совпало с выпуском версии 5.0. Впоследствии, в версии 5.1, базовая программа GUI была переписана с C++ на Racket c помощью собственного инструментария пользовательского интерфейса на всех платформах [15]. В версии 5.2 включен инструмент фоновой проверки синтаксиса. новую библиотеку-плоттер, библиотеки баз данных, и новый расширенный REPL [21]. В версию 5.3 включена новая функциональность: подмодули для опционально загружаемых модулей [22]. новые инструменты оптимизации. библиотеку JSON. и другие возможности [23]. В версии 5.3.1 значительно улучшен DrRacket: добавлен новый инструмент просмотра документации, проверка синтаксиса в фоне включена по умолчанию [24] .

    Примеры кода

    Тривиальная программа "hello world " будет выглядеть следующим образом:

    При её запуске будет выведено:

    Выпуск языка программирования Racket 6

    Выпуск языка программирования Racket 6.4 10.02.2016 11:15

    Доступен выпуск языка программирования общего назначения Racket Lang 6.4 (бывший PLT Scheme), представляющего собой диалект Lisp и Scheme с поддержкой объектов, типов, отложенных вычислений и других расширенных возможностей. Сильной стороной Racket является возможность связывания компонентов на различных языковых диалектах и создания новых специфичных для конкретных проектов диалектов языка программирования. Реализация Racket распространяется под лицензией LGPL.

    Основные изменения в Racket 6.4:

    • Инкрементальный сборщик мусора избавлен от продолжительных задержек;
    • Приложения теперь должны сами устанавливать инкрементальный режим работы сборщика мусора;
    • Увеличена производительность прокрутки в оболочке DrRacket;
    • По умолчанию для загрузки пакетов задействован https вместо http;
    • Исправлены ошибки безопасности в web-сервере;
    • Различные улучшения в документации, в Typed Racket, в Redex, в raco и других компонентах.

    OpenNet прочитано 2784 раза

    Racket (язык программирования)

    Racket (язык программирования)

    Racket (англ. racket — рэкет, ранее — PLTScheme) — мультипарадигменный язык программирования общего назначения, принадлежащий семейству Lisp /Scheme. Одна из целей разработки racket: создание, разработка и реализация языков программирования. Язык используется в различных контекстах как язык. язык общего назначения, в обучении информатике и научных исследованиях.
    Платформа предоставляет пользователю реализацию языка Racket, включая развитую среду выполнения (англ. run time system), различные библиотеки, JIT-компилятор и т. д. а также среду разработки DrRacket (ранее известную, как DrScheme) написанную на Racket. Эта программная среда используется в учебном курсе ProgramByDesign[en]массачусетского технологического института. Основной язык Racket отличает мощная макросистема. позволяющая создавать встраиваемые и предметно-ориентированные языки программирования, языковые конструкции (к примеру классы и модули ) и диалекты Racket с различной семантикой .
    Система является свободным и открытым ПО. распространяемым на условиях LGPL. Расширения и пакеты, написанные сообществом, доступны на PLaneT, веб-дистрибутиве системы.

    Это фрагмент статьи Racket (язык программирования) свободной энциклопедии Википедия. В Википедии приведен список авторов.

    На сайте ru.wikipedia.org к статье Racket (язык программирования) за последние 30 дней обращались 354 раз. (по состоянию на: 06.06.2014 г.)

    Изображения о Racket (язык программирования)

    Racket — современная платформа для разработки языков программирования, одна из самых прогрессивных, наследница Lisp. Пара слов о Лиспе: будучи созданным 50 лет назад, он живёт и развивается до сих пор, причём последние 20 лет практически без финансирования. Что означает, что язык действительно хорош.

    Lisp.Ru - русскоязычное сообщество Лисп-программистов

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

    Выпуск языка программирования Racket 6

    Добавленно 10th Февраль. 2016 в 17:53 (Bocha )

    Доступен выпуск языка программирования общего назначения Racket Lang 6.4 (бывший PLT Scheme), представляющего собой диалект Lisp и Scheme с поддержкой объектов, типов, отложенных вычислений и других расширенных возможностей. Сильной стороной Racket является возможность связывания компонентов на различных языковых диалектах и создания новых специфичных для конкретных проектов диалектов языка программирования. Реализация Racket распространяется под лицензией LGPL.

    Основные изменения в Racket 6.4:

    • Инкрементальный сборщик мусора избавлен от продолжительных задержек;
    • Приложения теперь должны сами устанавливать инкрементальный режим работы сборщика мусора;
    • Увеличена производительность прокрутки в оболочке DrRacket;
    • По умолчанию для загрузки пакетов задействован https вместо http;
    • Исправлены ошибки безопасности в web-сервере;
    • Различные улучшения в документации, в Typed Racket, в Redex, в raco и других компонентах.

    Racket (язык программирования)

    Racket (язык программирования)

    Racket (англ. racket — рэкет, ранее — PLTScheme) — мультипарадигменный язык программирования общего назначения, принадлежащий семейству Lisp /Scheme. Одно из предназначений racket — создание, разработка и реализация языков программирования [3] [4]. Язык используется в различных контекстах: как скриптовый язык. как язык общего назначения, в обучении информатике, в научных исследованиях.

    Платформа предоставляет пользователю реализацию языка Racket, включая развитую среду выполнения (англ. run time system ) [5]. различные библиотеки, JIT-компилятор и т. д. а также среду разработки DrRacket (ранее известную, как DrScheme) написанную на Racket [6]. Эта программная среда используется в учебном курсе ProgramByDesign [en] массачусетского технологического института [7] [8]. Основной язык Racket отличает мощная макросистема. позволяющая создавать встраиваемые и предметно-ориентированные языки программирования, языковые конструкции (к примеру классы и модули ) и диалекты Racket с различной семантикой [9] [10] [11] [12] .

    Система является свободным и открытым ПО. распространяемым на условиях LGPL. Расширения и пакеты, написанные сообществом, доступны на PLaneT [13]. веб-дистрибутиве системы [14] .

    Содержание Создание Править

    Matthias Felleisen [en] основал компанию PLT Inc. в середине 1990-х, первоначально - как исследовательскую группу, а вскоре - проект по производству педагогических материалов для начинающих программистов (лекции, упражнения/проекты, программное обеспечение). В январе 1995 было решено разработать учебную среду программирования на языке Scheme. Matthew Flatt [en] собрал MrEd, оригинальную виртуальную машину Racket, используя libscheme, wxWidgets и некоторые другие свободные системы [15]. В течение последующих лет команда, в которую входили, в частности, Flatt, Robert Bruce Findler [en]. Shriram Krishnamurthi [en]. Cormac Flanagan, и многие другие выпускали среду DrScheme предназначенную для начинающих программистов-схемеров и исследований в области мягкой типизации (комбинации статической и динамической типизации ) [6]. Основной язык программирования, поддерживаемый средой назывался PLT Scheme.

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

    DrScheme был дополнен учебными языками. пошаговый алгебраический вычислитель (англ. algebraic stepper ) [16]. прозрачный REPL -цикл, подсистему печати на основе конструкторов (cons) и множество других нововведений, которые сделали DrScheme качественным образовательным продуктом. В 2001 году разработчиками языка была написан и опубликован учебник How to Design Programs [en]. основанный на их философии обучения программированию.

    Развитие DrScheme Править

    В первое поколение версий DrScheme были введены средства для программирования в большом [en] c использованием модулей и классов. В версии 42 были добавлены юниты: система модулей — объектов первого класса. позволяющая дополнять модули в процессе разработки больших систем [17]. Система классов была с одной стороны дополнена (в частности интерфейсами в стиле Java ), а с другой — сокращена (в частности было удалено множественное наследование ) [10]. Язык развивался на протяжении ряда последовательных версий и набрал популярность к версии 53, что ещё ускорило работу над ним и следующая версия 100, стала эквивалентом «1.0».

    В следующую крупную ревизию, получившую номер 200, была введена новая модульная система по умолчанию, интегрированная с макросами [17]. В частности, модульная система гарантирует, что вычисления время выполнения и вычисления времени компиляции разделены для поддержки «башни языков» [18]. В отличие от юнитов, эти модули не являются объектами первого класса .

    В версию 300 введена поддержка Unicode. библиотека интерфейса с внешними функциями [en] и изменена система классов [17]. Позднее для релизов версии 300 была улучшена производительность путём добавления JIT-компилятора и сборки мусора с поддержкой поколений объектов .

    К следующему мажорному релизу DrScheme перешёл на общепринятую систему нумерации версий на основе десятичных дробей. В версию 4.0 введено сокращение #lang для указания [под]языка, на котором написан модуль. Также в этот релиз введены неизменяемые пары и списки, поддержка мелкозернистого параллелизма. и статически типизированный диалект [19] .

    Racket Править

    7 июня 2010 года, PLT Scheme был переименован в Racket [20]. что совпало с выпуском версии 5.0. Впоследствии, в версии 5.1, базовая программа GUI была переписана с C++ на Racket c помощью собственного инструментария пользовательского интерфейса на всех платформах [15]. В версии 5.2 включен инструмент фоновой проверки синтаксиса. новую библиотеку-плоттер, библиотеки баз данных, и новый расширенный REPL [21]. В версию 5.3 включена новая функциональность: подмодули для опционально загружаемых модулей [22]. новые инструменты оптимизации. библиотеку JSON. и другие возможности [23]. В версии 5.3.1 значительно улучшен DrRacket: добавлен новый инструмент просмотра документации, проверка синтаксиса в фоне включена по умолчанию [24] .

    Примеры кода Править

    Тривиальная программа "hello world " будет выглядеть следующим образом:

    Изучаем - Структура и интерпретация компьютерных программ: моё введение - Блог Симоненко Евгения А

    Изучаем "Структура и интерпретация компьютерных программ": моё введение

    Размещена 2014-03-31. Автор: Симоненко Евгений А.

    Эта заметка посвещена изучению книги "Структура и интерпретация компьютерных программ" (Абельсон, Сассман, Сассман) (англ. Structure and Interpretation of Computer Programs — SICP). Здесь я излагаю свои комментарии и дополнения к книге.

    "Структура и интерпретация компьютерных программ" - широко известная в кругах программистов книга, написанная Харальдом Абельсоном и Джеральдом Сассманом и известная как SICP - Structure and Interpretation of Computer Programs. Первое издание было выпущено Массачусетским технологическим институтом (MIT - Massachusetts Institute of Technology) в 1985 году. Книга использовалась в MIT как учебник по вводному курсу программирования для студентов в области Computer Science (курс 6.001 ). В качестве языка программирования в книге применяется язык Scheme (читается Схема ) - один из диалектов языка Lisp. разработанный в MIT. Несколько лет назад институт отказался от использования языка Scheme в пользу более востребованного Python. Актуальное издание на данный момент - второе.

    Книга свободно распространяется в английском оригинале, а также в русском переводе, сделанном несколько лет назад:

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

    GNU Scheme и Racket работают как в среде Unix-подобных систем так и в Windows. IronScheme - думаю вы догадались - реализация Scheme под .Net. Я буду придерживаться Racket. (Слово racket переводится как ракетка (упс, думал, что ракета, но по-английски это rocket) и рэкет (э, ну это слишком. ).)

    Дополнительную информацию вы найдёте здесь:

    • SICP по-русски - http://sicp.sergeykhenkin.com/
    • Quick: An Introduction to Racket with Pictures - http://docs.racket-lang.org/quick/
    • Programming Languages: Application and Interpretation - http://cs.brown.edu/

    Вышел Racket 6

    Доступен для скачивания релиз 6.3 языка программирования Racket — http://racket-lang.org/ .

    • При раскрытии макросов используется новое представление связывания, что позволяет проще понимать как макросы сохраняют связывания, особенно при вовлечении в процесс раскрытия нескольких модулей и при отклонении от гигиены при раскрытии.
    • GUI-библиотека Racket теперь использует Gtk3+ по умолчанию.
    • Новое руководство по Redex.
    • Улучшена проверка синтаксических ошибок для Redex-паттернов.
    • Bluebox стали более агрессивными в плане отыскания имён для поиска в документации.
    • Подмодули теперь полностью поддерживаются в Typed Racket.
    • Библиотека typed/racket/unsafe предоставляет формы импорта/экспорта для обхода генерации контрактов.
    • Typed Racket предоставляет экспериментальную поддержку units (из racket/unit ).
    • Экспериментальная форма define-new-subtype позволяет указывать тонкие различия, без которых типы считаются идентичными (аналог new type в Haskell).
    • Конструктор типов Promise изменился, нарушив обратную совместимость для устранения promise, созданных с помощью promise/name .
    • Пакеты unstable-* исключены из главного дистрибутива.
    • big-bang поддерживает режим display-mode. что позволяет т.н. «мировым» программам (интерактивным, графическим программам, состоящих из простых математических функций) занимать весь экран целиком.

    anonymous
    24.11.2015 10:59:11
    Проверено: maxcom ( 24.11.2015 22:20:02 )

    Встречный вопрос от общелиспера - как вы там без unwind-protect с освобождением ресурсов справляетесь?

    loz ????? ( 24.11.2015 22:03:11 )
    Последнее исправление: loz 24.11.2015 22:03:45 (всего исправлений: 1 )

    Ответ на: комментарий от loz 24.11.2015 22:03:11

    Есть стандартный схемных dynamic-wind, в Racket могут быть и более легковесные варианты, на основе delimited continuations.

    Begemoth ????? ( 24.11.2015 22:34:59 )
    Последнее исправление: Begemoth 24.11.2015 22:35:20 (всего исправлений: 1 )

    А Qt оно умеет? Очень хотелось бы попробовать Qt5 + QML + Racket заюзать.

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

    Какой-то уж до боли знакомый логотип.

    Я правильно понял, что Racket — это дальнейшее развитие слэш замена PLT Scheme?

    Ответ на: комментарий от gns 24.11.2015 23:48:31

    Я правильно понял, что Racket — это дальнейшее развитие слэш замена PLT Scheme?

    монолит вместо микросервисов?

    Совсем микросервис у меня один: отдельная программа на Windows-машине отдаёт список компов из AD.

    Всё остальное имеет общий список компьютеров (структур). Так как запись поля атомарная операция, то не вижу смысла разбивать на отдельные процессы.

    Разбивка есть по модулям (чтение/запись файла с конфигурацией, общение с tc, общение с arp и nmblookup) и по потокам (web, обновление настроек tc, обновление информации о компах через nmblookup).

    Ответ на: комментарий от VKraft 25.11.2015 9:26:42

    какой IDE под racket используешь?

    DrRacket. Чуть тормозит иногда и автодополнения по сути нет, но удобно видеть связи переменной при наведении на неё.

    Да, есть автодополнение, поиск по помощи: http://www.nongnu.org/geiser/ Там только отладчик хуже, чем в DrRacket.