1 | #+title: Scheme
|
---|
2 | Реализации:
|
---|
3 | - [[file:20210409071244-guile.org][Guile]] (Проект GNU + встраиваемость в си)
|
---|
4 | - [[file:20210422030851-mit_scheme.org][MIT Scheme]] (Стандартная схема)
|
---|
5 | - [[file:20210428014724-bigloo.org][BigLoo]] (C++ like)
|
---|
6 | - [[file:20210422030900-racket.org][Racket]] (Python like batteries)
|
---|
7 | - [[http://synthcode.com/scheme/chibi][Chibi Scheme]] (Встраиваемость в си, маленький размер)
|
---|
8 |
|
---|
9 | Разница между функциями и макросами:
|
---|
10 | - В функции вычисляются все аргументы перед применением
|
---|
11 | - В макросе аргументы не вычисляются
|
---|
12 |
|
---|
13 | Квозиквот (quaziquote):
|
---|
14 | - Вычисляет аргументы списка
|
---|
15 | #+begin_src scheme
|
---|
16 | `(1 2 ,(+ 1 2)) ; => '(1 2 3)
|
---|
17 | #+end_src
|
---|
18 |
|
---|
19 | Сплайсинг:
|
---|
20 | - Разворачивает список внутрь существующего
|
---|
21 | #+begin_src scheme
|
---|
22 | `(1 2 ,@(map 1+ '(2 3))) ; => '(1 2 3 4)
|
---|
23 | #+end_src
|
---|
24 |
|
---|
25 | [[https://www.gnu.org/software/guile/manual/html_node/Expression-Syntax.html][Guile Expression Syntax Manual]]
|
---|
26 |
|
---|
27 | SRFI (Scheme Request For Implementation):
|
---|
28 | - [[file:20210414222333-srfi_9.org][SRFI-9]]
|
---|
29 |
|
---|
30 | Веб-ресурсы:
|
---|
31 | - http://community.schemewiki.org
|
---|
32 |
|
---|
33 | Статьи:
|
---|
34 | - http://phyast.pitt.edu/~micheles/scheme/index.html
|
---|
35 |
|
---|
36 | Книги:
|
---|
37 | - https://www.scheme.com/tspl4/
|
---|
38 | - https://freecomputerbooks.com/langSchemeBooks.html
|
---|
39 | - [[https://people.eecs.berkeley.edu/~bh/ss-toc2.html][Simply Scheme: Introducing Computer Science]]
|
---|
40 |
|
---|
41 | Научные статьи:
|
---|
42 | - https://github.com/schemedoc/bibliography
|
---|
43 |
|
---|
44 | Достоинства:
|
---|
45 | - Есть стандарт и он маленький (~40 стр)
|
---|
46 | - Есть много реализаций и стандарт просто реализовать
|
---|
47 |
|
---|
48 | Недостатки:
|
---|
49 | - Менее динамичен по сравнению с Common Lisp (geiser < Slime)
|
---|
50 |
|
---|
51 | Видео:
|
---|
52 | - [[https://youtube.com/watch?v=Kq-4nhIktes][Scheme, Guile, and Racket: an Introduction by Craig Maloney]]
|
---|