[plt-scheme] ANNOUNCE: dot-scheme 1.0 released
After a long Beta dot-scheme as finally reached version 1.0. More
information can be found at the dot-scheme website:
http://www.rivendell.ws/dot-scheme
Please report any problems to ppinto at cs.cmu.edu.
Enjoy,
-pp
dot-scheme
----------
dot-scheme is a PLT Scheme bridge to the Microsoft .NET framework. It
provides comprehensive access to .NET libraries, offering integrated
exception handling, support for .NET delegates, and the ability to
implement .NET interfaces in Scheme.
Changes
-------
v1.0 offers too many improvements to list. Some of the highlights are:
- Callbacks. It is now possible to instantiate .NET delegates with
Scheme procedures. This opens the possiblity of writing UIs using
the .NET GUI classes. The fragment bellow adds a handler to the
OnClick event of a button:
(:add/click a-button (lambda (sender args)
(printf "Cool~n")))
- Interfaces. Version 1.0 makes it possible to implement a .NET
interface using Scheme procedures. For example to provide an
implementation of IEnumerable using a Scheme list:
(define (make-list-ienumerator for-list)
(let ((cursor 'bof))
(implement-interface
::i-enumerator
(:get/current
(lambda ()
(car cursor)))
(:move-next
(lambda ()
(let ((next (if (equal? cursor 'bof)
for-list
(cdr cursor))))
(cond ((null? next)
#f)
(else
(set! cursor next)
#t)))))
(:reset
(lambda()
(set! cursor 'bof))))))
- Integrated exception handling. .NET exceptions can be thrown or
caught using the PLT Scheme exception mechanism. Scheme errors that
occur within a .NET callback are translated into .NET exceptions and
propagated as such.
Credits
-------
Thanks to the PLT group for creating a wonderfull Scheme system
and for continuing to provide outstanding support for it.