source: project/wiki/chicken-for-ruby-programmers @ 8583

Last change on this file since 8583 was 8583, checked in by svnwiki, 12 years ago

Changes applied for klovett (69.226.224.182) through svnwiki:

File size: 1.3 KB
Line 
1== Overview
2=== Scheme and Ruby are similar
3* Ruby shares history with Scheme
4** Names: map, Proc(cedures), nil
5** bang! methods/procedures
6** Lexical scope => closures a.k.a. blocks
7** continuations
8** runtime evaluation
9* garbage collected
10* interpreted
11* Purity of design
12=== Scheme and Ruby are different
13* Syntax
14* Can be compiled as well
15* Not object oriented (by default)
16
17== Scheme Basics
18* Scheme has very simple syntax: (procedure arg1 arg2 arg3 ...)
19* A few basic special forms
20** (if ...)
21** (lambda ...)
22** I think there are 3 others. Add them here
23
24(define ...)
25(define-macro ...)
26(let ...)
27(letrec ...)
28
29
30== Equivalents from Ruby
31* Array => List/Vector
32
33Also multi-dimensional via SRFI-25, SRFI-47, & SRFI-63 (47 & 63 covered by the 'array-lib" egg).
34
35* Hash => Hash Table
36* Regex => Regex
37* Blocks => Procedures
38* Macros (e.g. acts_as_foo) => Macros
39
40Note that Chicken has only '(define-macro ...)' built-in. The "syntax-rules" system is an egg - the "syntax-case" egg.
41
42* Objects => Numerous object systems
43
44TinyCLOS is probably the best supported by Chicken.
45== Installation & Libraries
46* Basic install guidelines
47* Gems => Eggs
48
49== Getting things Done
50* Shell scripts
51* Web programming
52* Databases
53* GUI Apps
54* Compiling
55* FFI
56
57== Pick Your Style
58* Imperative
59* OOP
60* Functional
61* Stack
62* Actor
63* DSLs and Interpreters
64** Metaprogramming
65
Note: See TracBrowser for help on using the repository browser.