Не много людей использует его, что я знаю, но это определенно стоит быстрого взгляда (если даже только попытаться программировать в другой парадигме, так, чтобы Вы учились думать по-другому). Вам посчастливилось быть в состоянии посещать урок, который использует Схему, поскольку большинство университетов в эти дни теперь преподает Java. Вот хорошая ссылка, если Вы хотите видеть некоторые лекции из MIT или работать над демонстрационными проблемами и т.д.
, MIT Открывает Courseware - Структура и Интерпретация Компьютерных программ
существует сопроводительная книга , доступная онлайн бесплатно также (Структура и Интерпретация Компьютерных программ).
ОБНОВЛЕНИЕ:
Для заинтересованных языком, который является подобен для интригования, который использует JVM и может получить доступ к библиотекам Java (так как много университетов использует Java), проверьте Clojure. Возможно, это станет новым предпочтительным языком для введения информатики (мы можем все надеяться!).
Схема используется главным образом в обучающих целях. Это - одна причина не было стандарт система модуля до (спорного) RSR6 один: при записи небольших программ для домашней работы необычно нуждаться в большом количестве крупных библиотек.
Схема, начатая как эксперимент для добавления подобного Smalltalk ООП к Lisp. Это в конечном счете изменило макро-систему, добавило call/cc
(и dynamic-wind
, dynamic-unwind
), и выросло вполне немного.
Кроме проектов GNU с помощью Хитрости в качестве языка сценариев, я не знаю ни о какой производственной системной Схеме использования. Я действительно знаю о горстке производственных систем с помощью Lisp, хотя ( у Orbitz есть код Lisp в его системе резервирования ).
Я недавно услышал на stackoverflow подкасте, что Reddit был первоначально записан в LISP!
Я играю с IronScheme в эти дни, но не знаю никого, кто использует Схему фактической работы.
Абсолютно. Схема хороша для многих различных классов проблем. Jim Blandy работает над версией Схемы под названием Незначительный , который интегрируется намного ближе с собственными системами и предназначен, чтобы быть производительным.
я понимаю, что LilyPond использует Хитрость для расширяемости, хотя я не знаю, что держал бы LilyPond как идеальный яркий пример программного обеспечения, поскольку это серьезно ранило мою установку OS X...
Существуют довольно многие реализация схемы для платформы Java, они используются для сценариев и разработки прототипа JAVA-приложений. Там существует основанная на продолжении веб-платформа для J2EE в схеме, названной SISCWeb.
схема Guile используется в качестве языка сценариев в некоторых приложениях GNU - GnuCash, например, главным образом записан в Схеме.
Также TinyScheme используется в качестве языка сценариев для GIMP, и некоторые изменения его используются во встроенных системах.
Вне личного опыта самая близкая вещь, которую Вы получите к объективному предположению, индекс TIOBE, который в настоящее время оценивает LISP/Схему, 21-й с долей рынка на 0,470%. Использование TIOBE результаты поиска для создания списка. Очевидно, Вы захотите взять список (и любой другой предполагает использование Схемы) с мелкой частицей соли.
Бесстыдное продвижение: выезд Схема PLT. Они создали хорошее сообщество, предлагают их IDE для многих платформ и дают Вам хорошая библиотека выбор out-of-the-box.
Вот статья, описывающая Схему PLT в коммерческом приложении: http://www.untyped.com/downloads/icfp068-welsh.pdf .
Я использовал его в колледже, но я не использовал его очень с тех пор.
, Если Вы шатки на рекурсии вообще, я настоятельно рекомендую изучение Схемы или Lisp. Вы будете учиться думать рекурсивно обо всех видах вещей. Рекурсия всегда является правильным способом пойти? Конечно, нет. Но это - полезный инструмент для имения на панели инструментов.
я всегда поощряю разработчиков учить новые языки. Чем больше языков Вы учите и становитесь опытными с, тем более абстрактно Вы будете думать о проблемах. Чем меньше Вы связываетесь с определенным языком, тем более вероятно необходимо выбрать язык который лучшие соответствия проблема.
Я работал над проектом с кодом схемы в производстве, это может быть довольно интересный материал. Схема имела эту замечательную функцию динамично перекомпиляция для самооптимизирования выполнения . Я думаю, что это похоже на один шаг далеко от сети неба.
"Кто-либо действительно использует этот язык?"
Paul Graham , заметно.
Схема заставит Вас думать по-другому о программировании. Просто попробуйте быть непредубежденными!
Квадрат США использовал его для создания Фантазии Финала фильма .
Вот работа, которую они опубликовали на нем: Склеивающие Вещи - Схема в Производстве контента CG В реальном времени .
Из той бумаги:
В SIGGRAPH 2000 и 2001, мы, Square USA R& D команда показал рендеринг в реальном времени сцен из полного машинно-генерируемого фильма ''Заключительная Фантазия: Алкоголь В''.
[...]
Мы нашли его огромной справкой для имения встроенного интерпретатора Схемы в режиме реального времени механизм визуализации.
Я узнаю об этом в своем классе Дизайна Языка Программы, это имеет некоторое аккуратное использование. Я только использовал бы его для проблемы, которая предоставляет себя легко хвостовой рекурсии.
Все языки могут использоваться для записи чего-либо с достаточным усилием:)
Однако довольно прохладная Схема - знание Схемы имеет тенденцию влиять на Ваше программирование на других языках, по моему опыту.
макросы Схемы чрезвычайно мощны, и вызов функции на контексте выполнения программы функция mindwarping.
классическим тестом является Структура и Интерпретация Компьютерных программ ("SICP"). Стоящий чтения.
I'm currently working through the SICP lectures that Abelson and Sussman gave at Hewlett-Packard in 1986 and the Cal-Berkeley CS61A podcasts given by Brian Harvey (taught from the same book) and following along in Scheme, and the experience is opening up whole new ways of thinking for me. To anyone who, like me, doesn't have any formal CS higher-education, I highly recommend it...
Да! Схема довольно интересная. Я выучил это на первом курсе Университета Ватерлоо. Поначалу это немного отличается, особенно если вы пришли из опыта ООП / императива.
Он делает для вас много хороших вещей, и вам определенно стоит изучить функциональную парадигму, хотя бы ради чего-то другого.
Это также весьма полезно, например, я только что сделал компилятор для супер упрощенной версии C, и я не мог представить, что смогу сделать это без функционального языка (:
Clojure - это язык, подобный Scheme / Lisp, который работает в JVM и действительно хорош для параллельной обработки (предположительно). Самое замечательное в использовании Clojure - это то, что вы получаете доступ ко всему Java API и любым другим библиотекам Java.
Clojure становится довольно популярным среди языковых гиков вместе со Scala.
JavaScript во многом похож на Scheme (хотя в нем отсутствуют продолжения и расширенная числовая система Scheme).
Из « Обзор языка ECMAScript » ( PDF). 2007-10-23. С. 4. Проверено 3 мая 2009 г.
ES3 - это простой, очень динамичный, объектно-ориентированный язык, который берет свое основные идеи из языков Self и Схема. Стиль программирования - это смесь объектного и функционального программирование: первичная абстракция механизмы в ES3 лексически ограничены функции высшего порядка и изменяемые объекты ...
Jazz Scheme - это среда схемы с открытым исходным кодом, построенная на Gambit Scheme и, похоже, активно продвигает промышленное использование, проверьте:
Они сообщают о новых применениях в своих новостях:
Согласно на этой странице, Scheme используется (или использовалась) в: DEC, TI, Tektronix, HP и Sun.
Резюме этого парня на LinkedIn составлено с помощью Chez Scheme в Disney.
Если немного погуглить, можно многое узнать. В данном случае это подтверждает наблюдение, которое я однажды слышал, что использование Scheme довольно повсеместно, просто не очень публично.