Scheme (29 Jul 2002)
Well, I did come up with a load of links over the weekend and wrote up an IV entry - then promptly forgot to upload it. Rats. That'll sit at home for another couple of weeks now
However, here are some that I dug out today:
You're going to have to Google for the rest of the links today
God it's hot. Not going to be sleeping well tonight
Been looking at Bigloo - a compiler for (mostly) R5RS Scheme which outputs C and Java bytecodes as its backends. One very nice feature is that it's designed to work with Java/C native code really well. However much we might wish it wasn't, the reality is that FFI interfaces in higher level languages (now there's a vague term (and a redundant acronym for that matter)) are really important.
It even manages to compile non-deterministic code using call/cc (see the snippet below, mostly from On Lisp)
In addition it has a nice (ILISP like) Emacs interface and what looks like a very nice native IDE, called BDK. I say looks like because I cannot get it to compile, but the screen shots are impressive
LtU has a link to conference notes about Bigloo's TK based GUI toolkit, called BigLook
(module nondet) (define *paths* '()) (define failsym '@) (define (choose choices) (if (null? choices) (fail) (call-with-current-continuation (lambda (cc) (set! *paths* (cons (lambda ()(cc (choose (cdr choices)))) *paths*)) (car choices))))) (define fail 0) (call/cc (lambda (cc) (set! fail (lambda () (if (null? *paths*) (cc failsym) (let ((p1 (car *paths*))) (set! *paths* (cdr *paths*)) (p1))))))) (define small-ints '(1 2 3 4 5 6 7 8 9 10)) (define sum (lambda (x) (let ((a (choose small-ints)) (b (choose small-ints))) (if (= (+ a b) x) (cons a b) (fail))))) (display (sum 19))(newline)