source: content/digarden/.stversions/20210409071256-scheme~20220309-051343.org@ 5a2b670

Last change on this file since 5a2b670 was 5a2b670, checked in by Mikhail Kirillov <w96k@…>, on Oct 6, 2022 at 12:37:40 PM

Add digital garden

  • Property mode set to 100644
File size: 2.0 KB
Line 
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
27SRFI (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]]
Note: See TracBrowser for help on using the repository browser.