You are looking at historical revision 8582 of this page. It may differ significantly from its current revision.
Overview
Scheme and Ruby are similar
- Ruby shares history with Scheme
- Names: map, Proc(cedures), nil
- bang! methods/procedures
- Lexical scope => closures a.k.a. blocks
- continuations
- runtime evaluation
- garbage collected
- interpreted
- Purity of design
Scheme and Ruby are different
- Syntax
- Can be compiled as well
- Not object oriented (by default)
Scheme Basics
- Scheme has very simple syntax: (procedure arg1 arg2 arg3 ...)
- A few basic special forms
- (if ...)
- (lambda ...)
- I think there are 3 others. Add them here
(define ...) (let ...) (letrec ...)
Equivalents from Ruby
- Array => List/Vector
Also multi-dimensional via SRFI-25, SRFI-47, & SRFI-63 (47 & 63 covered by the 'array-lib" egg).
- Hash => Hash Table
- Regex => Regex
- Blocks => Procedures
- Macros (e.g. acts_as_foo) => Macros
Note that Chicken has only '(define-macro ...)' built-in. The "syntax-rules" system is an egg - the "syntax-case" egg.
- Objects => Numerous object systems
TinyCLOS is probably the best supported by Chicken.
Installation & Libraries
- Basic install guidelines
- Gems => Eggs
Getting things Done
- Shell scripts
- Web programming
- Databases
- GUI Apps
- Compiling
- FFI
Pick Your Style
- Imperative
- OOP
- Functional
- Stack
- Actor
- DSLs and Interpreters
- Metaprogramming