Racket, the system formerly known as PLT Scheme, has just been released.
PLT is happy to announce the release of Racket, available from
http://racket-lang.org/
With Racket, you can script command shells and web servers; you can quickly prototype animations and complex GUIs; regexps and threads are here to serve you. To organize your systems, you can mix [...]
Doug Orleans’ cute program to compute roots of quadratic equations:
(define (± x y)
(shift k (values (k (+ x y)) (k (- x y)))))
(define (quadratic-formula-roots a b c)
(reset (/ (± (- b) (√ (- (² b) (* 4 a c))))
(* 2 a))))
Saturday, September 26, 2009
Some photos from the 2009 Scheme and Functional Programming Workshop at Northeastern.
Wednesday, September 23, 2009
A new SRFI for inspecting the arity of procedures:
Many Scheme systems provide mechanisms for inspecting the arity of a procedural value, making it a common feature, however there is no standard interface. As a result there is no portable way to observe the arity of a procedure without actually applying it. This SRFI proposes a [...]
Thursday, September 17, 2009
A new SRFI for purely functional random-access lists:
Functional programming and list hacking go together like peanut butter and jelly, eval and apply, syntax and semantics, or cursing and recursing. But the traditional approach to implementing pairs and lists results in index-based access (list-ref) requiring time proportional the index being accessed. Moreover, indexed-based functional update [...]
Code from the past couple of posts on context semantics is now available on Planet.
PLaneT Package Repository : PLaneT > dvanhorn > dilbert.plt
Think of a program as a big graph, constructed out of the pieces of its syntax. Using λ-calculus syntax as an example: an application (@) links to its context and two subexpressions; an abstractions (λ) links to its expression context, subexpression, and variable binding; a bound variable occurrence links to its expression context and [...]
The denotation of λs.λz.s(sz) in the geometry of interaction.
(letrec ((* (λ (c) (cons π1 c)))
(π23
(λ (c)
(π21
[...]
Random-access lists (Okasaki, FPCA ‘95) are a purely functional data structure for representing lists of values. A random-access list may act as a drop in replacement for the usual sequential list data structure (cons?, cons, car, cdr), which additionally supports fast index-based addressing and updating (list-ref, list-set).
PLaneT Package Repository : PLaneT > dvanhorn > ralist.plt
The firm deadline for the Scheme and Functional Programming Workshop is approaching. The workshop is going to be held at MIT in August in conjunction with the Symposium in Honor of Mitchell Wand.
Update: the preliminary program can now be found here.