proj-plbook-plChRacketLang

Difference between revision 15 and current revision

No diff available.

Table of Contents for Programming Languages: a survey

Scheme and Racket

Because the Lisp family is so well-liked, Racket gets its own chapter (as a representative of Scheme/Lisp).

Descended from Scheme.

Good at:

Popularity:

Tutorials, books, etc:

Retrospectives

Respected exemplar code

Racket opinions

(Often opinionated) Comparisons


Scheme fundamental and library forms

From http://en.m.wikipedia.org/wiki/Scheme_%28programming_language%29#Minimalism :

Fundamental forms:

Library forms:

Standard forms in R5RS Scheme

from http://en.m.wikipedia.org/wiki/Scheme_%28programming_language%29#Standard_forms

Standard procedures in the language R5RS Scheme

from http://en.m.wikipedia.org/wiki/Scheme_%28programming_language%29#Standard_procedures :

numeric procedures

Scheme base library

Quoted and paraphrased from http://www.gnu.org/software/guile/manual/html_node/rnrs-base.html . This list is based off of that link (part of GNU Guile's documentation), but i can't tell if if it meant to be R6RS or R5RS or some mix or something else. For our purposes, it doesn't really matter.

Atomic(ish) data: Strings, characters, symbols, numbers

Symbol and character manipulation

Strings

Numbers, arithmetic, and math

Composite data: Lists, vectors, pairs

Lists and vectors

Lists

Vectors

Pairs

Variables

Conditionals, boolean ops, equality, comparison

Control flow, functions, continuations

Exception handling

Type predicates

Metaprogramming: Macros and syntax rules and quoting

Widely-supported Scheme SRFIs

According to http://en.m.wikipedia.org/wiki/Scheme_%28programming_language%29#Scheme_Requests_for_Implementation (see also http://srfi.schemers.org/final-srfis.html , http://en.m.wikipedia.org/wiki/Scheme_(programming_language)#cite_note-srfi_support-28 ):

Typed racket

https://docs.racket-lang.org/ts-guide/index.html

https://docs.racket-lang.org/ts-reference/index.html

Internals

Garbage collection

Variants and extensions