A while back I listened to an interview that Software Engineering Radio did with Richard P. Gabriel.
Gabriel is well spoken, has a valuable historical perspective, and the interview has a lot of interesting bits that folks new to Lisp may never before have heard.
Author: grant
Some Programming Articles
On his website, Dan Bensen has got a page set up with links to a whole bunch of excellent articles on programming. It wouldn’t make sense for me to link to them individually. Thanks Dan!
DrScheme: Insert Lambda Template Keybinding
DrScheme provides a very versatile keybinding system. Out of the box you get bindings that make it very easy to navigate and even refactor your code. One keybinding, insert-lambda-template, works by surrounding the selected code with a lambda function. By default, insert-lambda-template uses the lowercase lambda symbol λ rather than the word lambda. As DrScheme encodes its files in utf-8 it has got no problems with this (in fact DrScheme has shortcuts for inserting most other Greek characters), but if you use other tools to edit or process your source code you may find that they (quite disappointingly) choke on it. For that reason, I wanted to modify the keybinding so that it would use the world lambda rather than the symbol. There are two ways to go about doing this.
The first involves modifying the source code of DrScheme itself. This sounds harder than it is as it doesn’t even involve downloading the source code. When you install DrScheme, it includes a number of source files used to customize itself. If you wanted, you could look up this keybinding, change it, and re-run the setup program. I don’t like this approach, though, since it forces the user to re-build part of the program. That leaves us with the second alternative, a custom keybinding.
A custom keybinding is easy to implement and add. To write it, I copied the definition of insert-lambda-template and changed the lambda symbol to the word lambda. Next, I went through DrScheme’s Edit->Keybindings menu to select Add User-defined Keybinding. That is all it takes.
My keybinding file can be downloaded here.
Be good once
Be good once, be an angel once; it is the smallest moments that change lives.
DrSync: Automatically synchronize file changes in DrScheme v370 and above
DrSync is a plugin that saves your files on frame deactivation and reverts them on frame activation. This tool is of particular interest to folks who run external programs like version control or build related tools on files which they are editing inside of DrScheme.
Continue reading “DrSync: Automatically synchronize file changes in DrScheme v370 and above”
Give credit where it is due
You should always give credit where it it due, especially when it is due to you!
Here is a good example of the practice.
Dynamic video game development
What would you do if you could use your favorite scripting language to dynamically call in to all sorts of libraries and frameworks native to your operating system?
This is probably very possible with your favorite scripting language; but is it is fun as hearing about doing so to write video games in Lisp?
Looping in Scheme
Not all loops in Scheme are created equally!
Jose Ortega captures a few perspectives on iteration in Scheme in his post, Scheme Loops.
Purely Functional Data Structures
In a thoughtful post on his blog, Chris Okasaki reflects back on his seminal contribution to the study of purely functional data structures.
Visualizing Lisp without parentheses
Michael Weber had the inspiration to imagine how might one visualize Lisp without parentheses in his mwe-color-box.el extension to Emacs.
Below is a screenshot from Michael’s page. More of Michael’s Emacs Hackery is available here.
[[http://www.wisdomandwonder.com/wordpress/wp-content/uploads/2008/02/color-box.thumbnail.png]]