Страница 1 из 1

Scheme

Добавлено: 19 фев 2014, 11:36
Olej
Чисто функциональный язык Scheme.
Scheme — один из двух наиболее популярных в наши дни диалектов языка Lisp (другой популярный диалект — это Common Lisp).
В ряде университетов мира обучение программированию начинают именно с языка Scheme. Жаль что у нас это на так! - наши спешат, им не терпиться сразу "молотить бабло" :lol:

Авторы языка Scheme — Гай Стил (англ. Guy L. Steele) и Джеральд Сассмен (англ. Gerald Jay Sussman) из Массачусетского технологического института — создали его в середине 1970-х годов. Т.е. язык никак уж новым не назовёшь...

В репозитариях Linux есть такая реализация Scheme как guile, чтоб не ставить из исходников:

Код: Выделить всё

bash-4.2$ yum list guile
Загружены модули: langpacks, refresh-packagekit
Доступные пакеты
guile.i686                                              5:2.0.9-4.fc20
bash-4.2$ sudo yum install guile
...
Установлено:
  guile.i686 5:2.0.9-4.fc20

Установлены зависимости:
  gc.i686 0:7.2d-3.fc20

Выполнено!
bash-4.2$ guile --version
guile (GNU Guile) 2.0.9
Copyright (C) 2013 Free Software Foundation, Inc.
Устанавливает целую кучу инструментов:

Код: Выделить всё

bash-4.2$ ls /usr/bin/guil*
/usr/bin/guild  /usr/bin/guile  /usr/bin/guile2  /usr/bin/guile2-tools  /usr/bin/guile-tools
В пакете полнейшего объёма документация:

Код: Выделить всё

bash-4.2$ man  guile

NAME
       guile - The GNU Project Extension Language

SYNOPSIS
       guile [-L DIRECTORY] [-l FILE] [-e FUNCTION] [\] [-c EXPR] [-s SCRIPT] [--] [SCRIPT [ARGs for SCRIPT]]

       Only the most useful options are listed here; see below for the remainder.

DESCRIPTION
       GNU Guile is an implementation of the Scheme programming language.  It extends the R5RS and R6RS language st
       dards, providing additional features necessary for real-world use.
...

bash-4.2$ info  guile
...
Неплохие публикации для знакомства:
Кен Дики : Язык программирования Scheme, перевод Алексея Десятника
Преобразование программ на языке Scheme для облегчения компиляции в язык C

Исчерпывающее руководство по языку: Revised(5) Report on the Algorithmic Language Scheme.

Re: Scheme

Добавлено: 19 фев 2014, 11:45
Olej
Olej писал(а):Чисто функциональный язык Scheme.
Самый минимальный пример кода на Scheme показан в теме производительность языков программирования.

Re: Scheme

Добавлено: 19 фев 2014, 19:27
Olej
Olej писал(а):
Olej писал(а):Чисто функциональный язык Scheme.
Самый минимальный пример кода на Scheme показан в теме производительность языков программирования.
Но мне никак не удаётся из guile выдавить UTF-8 строки ... на русском :-o

Re: Scheme

Добавлено: 19 фев 2014, 20:08
Olej
Olej писал(а):Но мне никак не удаётся из guile выдавить UTF-8 строки ... на русском :-o
Нашёл таки ;-) :

Код: Выделить всё

#!/usr/bin/guile -s
!#
(define stdout (current-output-port))
(set-port-encoding! stdout "utf-8")

;; пробрная программа на Scheme - guile :

(begin (write "Привет из Scheme, ") (write ( car (cdr (command-line)))) (newline))
(display "... вот так выводится русская строка\n" )
Первые 2 строки комментария - чтобы не набирать постоянно:

Код: Выделить всё

$ guile ...
(естественно, при этом нужно сделать chmod a+x для файла скрипта *.scm).

А вывод UTF-8 обеспечивает: set-port-encoding...

Код: Выделить всё

bash-4.2$ ./hello.scm Вася
"Привет из Scheme, ""Вася"
... вот так выводится русская строка

Re: Scheme

Добавлено: 28 фев 2014, 00:17
Olej
Пример использования Scheme можно посмотреть здесь: сравнение языков программирования.