[plt-scheme] ANNOUNCE: dot-scheme 1.0 released

From: Pedro Pinto (ppinto at cs.cmu.edu)
Date: Wed Feb 25 23:10:10 EST 2004

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.







Posted on the users mailing list.