is a dialect of Lisp and as such owes much to the great body of work that has been done on language design in the name of Lisp over the last thirty years. The distinguishing features of EuLisp are (i) the integration of the classical Lisp type system and the object system into a single class hierarchy (ii) the complementary abstraction facilities provided by the class and the module mechanism (iii) support for concurrent execution.
Tag: Programming Language
Anaphoric Macros
Does the convenience that anaphoric macros provide justify breaking hygiene? In that chapter of On Lisp, the author stated that:
This chapter will show that variable capture can also be used constructively. There are some useful macros which couldn’t be written without it.
My evaluation of that claim is that while the former is true, anaphoric macros are not evidence of such a case as they only save you a variable binding. The latter claim is interesting because it begs the question of whether or not they should be written as macros at all. It made me wonder how anaphoric macros might look in Scheme, how they might look as functions, and whether one is clearly superior to the other.
Continue reading “Anaphoric Macros”
Liskell
is a new syntax frontend for Haskell. Next to its syntax in the form of symbolic expressions — which is also known as Lisp — Liskell also features an extended meta-programming facility. Its aim is to get the best of both worlds: being pure and functional with type inference in the tradition of Haskell, while providing the simplicity and uniformity in its syntax that is necessary for meta-programming.
Lisp Flavoured Erlang
is a lisp syntax front-end to the Erlang compiler. Code produced with it is compatible with “normal” Erlang code.
The really big change with this release is that
LFE is now Lisp-2 like Common Lisp, i.e. functions and variables reside in different name spaces, instead being a Lisp-1 like Scheme where they reside in the same name space.
(via PLNews)
Live Coding with Fluxus
Fluxus is a live coding system built on PLT Scheme.
Fluxus reads live audio or OSC network messages which can be used as a source of animation data for realtime performances or installations. Keyboard or mouse input can also be read for games development, and a physics engine is included for realtime simulations of rigid body dynamics.
Fluxus is a very cool system and the maintainer Dave is a very nice guy. Be sure to check it out!
Addendum: 8/14/8
Dave posted some links to videos of fluxus and the no copy paste jam.
(via PLT)
TeX Macros in DrScheme 3.99.0.23 and newer
You can use TeX Macros in DrScheme 3.99.0.23 and newer!
Continue reading “TeX Macros in DrScheme 3.99.0.23 and newer”
The Schematics Scheme Cookbook
The Schematics Scheme Cookbook
is a collaborative effort to produce documentation and recipes for using Scheme for common tasks.
This is a site with high quality posts, and in particular it has a large amount of code specific to PLT Scheme. It is yet another great site that is definitely worth your time.
How to Learn Scheme (was How to Learn Programming)
- The Scheme Programming Language Third Edition by R. Kent Dybvig
How to Design Programs by Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, and Shriram KrishnamurthiStructure and Interpretation of Computer Programs by Harold Abelson and Gerald Jay Sussman with Julie Sussman
Addendum 6/26/8:
The difference between learning a programming language and learning how to program is now clear enough to me that I had to revise this post to clarify its intent and correct its content. As such, the title has been changed, and only one book has been recommended.
Inform Users with BoxQuote
Have a look at how to utilize the “box control” within Emacs to help users with the task at hand.
Fortress 1.0 Released
Guy Steele’s latest programming language Fortress has been released.
The Fortress programming language is a general-purpose, statically typed, component-based programming language designed for producing robust high-performance software with high programmability.
In many ways, Fortress is intended to be a “growable language”, i.e., a language that can be gracefully extended and applied in new and unanticipated contexts.
(via PLNews)