Skip to content

Commit

Permalink
Updates to README and History.
Browse files Browse the repository at this point in the history
  • Loading branch information
jcoglan committed Feb 24, 2009
1 parent 8f72a31 commit d610c62
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 3 deletions.
21 changes: 18 additions & 3 deletions History.txt
@@ -1,6 +1,21 @@
=== 1.0.0 / 2009-01-12
=== Version 0.1.0 (2009-02-25)

* 1 major enhancement
First public release
* Data: booleans, numbers, strings, symbols, proper lists
* Most of R5RS syntax (chapter 4)
* Quoting, quasiquoting
* Binding constructs, conditionals
* Boolean logic
* Delayed evaluation
* Macros
* Tail recursion
* Continuations
* Optional transparent lazy evaluation
* Decent chunk of R5RS numeric library

* Birthday!

=== Version 0 (2009-01-12)

Initial draft. Supports (define), (lambda), lexical scoping,
closures, arithmetic and (display).

21 changes: 21 additions & 0 deletions README.rdoc
Expand Up @@ -226,6 +226,27 @@ conditionally, certainly this will not work with macros as the
inlining process will overwrite conditional code using the first
expansion generated.

Lazy evaluation mode is mainly useful for doing lambda calculus
without being concerned about the difference between normal and
applicative order, which for example affects the expression for
the Y combinator. It displays some interesting properties, such
as the fact that this is a perfectly reasonable definition for
<tt>Y</tt>:

(define (Y f)
(f (Y f)))
; => #<procedure:Y>

(define fact (Y (lambda (rec)
(lambda (x)
(if (zero? x)
1
(* x (rec (- x 1))))))))
; => #<procedure:fact>

(fact 6)
; => 720


== License

Expand Down

0 comments on commit d610c62

Please sign in to comment.