понедельник, 6 июля 2009 г.

MIT/GNU Scheme и Emacs

Вот интересно, кому пришла в голову мысль что Linux сложнее Windows?

На днях разгребал архивы закаченных файлов и среди прочего были обнаружены несколько статей
о пользе бега и вреде курения о пользе лиспа и вреде java.
  1. http://www.nestor.minsk.by/sr/2003/07/30710.html
  2. http://local.joelonsoftware.com/wiki/Опасности_обучения_на_Java
  3. http://local.joelonsoftware.com/wiki/А_ваш_язык_программирования_так_может%3Fa

Сложно не заинтересоваться.

В то же время, неподалеку была обнаружена книжка Харольд Абельсон, Джеральд Джей Сассман Структура и интерпретация компьютерных программ. Английский вариант:http://mitpress.mit.edu/sicp/full-text/book/book.html. Книжка, вообще говоря, и не совсем про лисп, но примеры на Scheme. Хороший способ совместить приятное с полезным.

В чем же дело? Нам нужна реализация той самой Scheme, на которой написаны примеры в книжке. Вот она: http://mitpress.mit.edu/sicp/scheme/index.html Скачиваем, устанавливаем заботливо собранный и для пользователей Windows бинарник http://www.gnu.org/software/mit-scheme/. Там же рядом PDF - версии документации. После установки, конечно, прописываем C:\Program Files\MIT-GNU Scheme\bin\ в PATH.

Конечно, это все теперь нужно прикрутить к Emacs (а как же без этого?!). Тут все уже написано: http://xtalk.msk.su/~ott/ru/writings/emacs-devenv/EmacsScheme.html#xscheme.. Итак, нам нужен Xscheme. Он входит в стандартный комплект Emacs, конечно, можно взять и версию http://www.gnu.org/software/mit-scheme/, но она едва ли новее. Выглядит не сложно. Нужно лишь запустить процесс Scheme. В самом приложении (Scheme.exe) про существование Windows не очень в курсе, т.к. путь поиска по band-файла all.com по умолчанию \scheme\lib. Кхм, ладно смотрим документацию. Решение: использовать переменную окружения MITSCHEME_LIBRARY_PATH со значением, например C:\Program Files\MIT-GNU Scheme\lib.

Наконец, M-x start-scheme успешно запущен. Но в созданном буфере scheme никакого процесса scheme нет, хотя некая консоль в соседнем окне запустилась. Возвращаемся на http://www.gnu.org/software/mit-scheme/ (прикидывая, оформить это как вопрос или уж сразу баг-репорт, в конце-концов, кому придет в голову тестировать все это в Windows?:)). А там, тем временем, относительно использования xscheme и emacs черным по белому написано: This doesn't work on Windows or OS/2.

Ладно, все же в комплекте MIT/GNU Scheme идет emacs-подобный редактор Edwin. Но разве Windows проще Linux?

6 комментариев:

  1. Я использую Quack и MzCheme. Всё это стоит на винде, особых проблем с установкой не было.
    Если ты пробуешь установить линуксовую программу на винде, то конечно у тебя будут проблемы :-).

    ОтветитьУдалить
  2. MIT Scheme практически мертва. для начала я бы рекомендовал plt scheme, в ее составе есть подробная документация, включая книгу how to design programs, и богатый набор библиотек, в том числе и для изучения схемы по различным курсам

    ОтветитьУдалить
  3. Линуксовую? Она позиционируется как кроссплатформенная. PLT Scheme - похоже то что нужно. Quack и MzCheme действительно хорошо дружат. Еще удалось подружить Scheme48 и slime48.

    ОтветитьУдалить
  4. Единственная проблема в Quack и MzCheme - то что (не напутать бы с терминологией) при запуске процесса в буфере *scheme* этот буфер создается в отдельном фрейме. Конечно, можно вручную закрыть тот фрейм, разделить окно основного (и единственного к этому времени) фрейма на 2 окна, в нижнем окне открыть буфер *scheme*, а в верхнем редактировать и запускать на исполнение *.scm - файл, но это все вручную...

    ОтветитьУдалить
  5. Ви не поверите, но с запуском MSWord под линуксом проблем ещё больше.

    ОтветитьУдалить
  6. Ну MSWord даже не пытается быть кроссплатформенным, скорее уж наоборот. Но unix-софт всяко проще портировать подо все на свете. Консоль - она и в Африке консоль. Не использовать абсолютных путей, да native api.

    ОтветитьУдалить