John asked about the status of the PLT Scheme PLaneT source search system here; to which Jens replied here and referenced this post. This post has information about why you might want to use the search engine (find out where set! is abused!) and also links to all of his posts about the development of the engine itself.
Jens mentions that he is not able to focus on maintenance at the moment; but if anyone is interested he would be happy to pass them the code.
Tag: Programming Language
Normal order and applicative order in Programming Languages
James had mentioned applicative and normal order in a post, on which Matthias commented and then elaborated here.
Normal order and applicative order are failed attempts to explain the nature of call-by-name programming languages and call-by-value programming languages as models of the lambda calculus. Each describes a so-called _reduction strategy_, which is an algorithm that picks the position of next redex BETA that should be reduced. By 1972, it was clear that instead you want different kind of calculi for different calling conventions and evaluation strategies (to the first outermost lambda, not inside). That is, you always reduce at the leftmost-outermost point in a program but you use either BETA-NAME or BETA-VALUE. Non-PL people were confused (and still are) because BETA-NAME looks like BETA but nearly 40 years later, everyone should figure this out. SICP was written when the majority of people were still confused. — Matthias
New PLT Scheme DEV Mailing List
PLT Scheme has a new development related mailing list. The focus of this list is on the development of the PLT Scheme system itself rather than the utilization of PLT Scheme.
Here is a link to the post.
Here is a link to the signup page for the list.
Here is further clarification on who might be interested in this list, as plucked from the “Welcome” email from the list:
Welcome to the plt-dev@list.cs.brown.edu mailing list! This list is for discussions on the implementation and development of PLT Scheme. It is aimed at people who are interested in contributing to PLT Scheme, or who are interested in the implementation of PLT Scheme. However, it is not for general discussion of Scheme, PLT Scheme, or programming — please use the plt-scheme list for those.
Jane Street Summer Project 2009
Jane Street is sponsoring a summer project for students in 2009 with the goal of “encourag[ing] growth in the functional programming community”.
I haven’t got any strong feelings about the best means by which to encourage that adoption; so I will be interested to see what comes of it.
(via PLT)
Different approaches to shaping code
It is fun to see how different people solve the same problem in code because you often learn new things in the process. In this thread in comp.lang.scheme, the original poster asked about how to define a particular shape of code, but without using non-hygienic macros. My approach is posted within the thread.
The solution itself is no where near as interesting as how it was reached. Basically I followed the lessons that I have been learning by studying HtDP, and the result was basically that the solution “wrote itself”. Granted, I have not reached a “Design Recipe” for writing macros (I suspect that there is not such a recipe in the book); but the disciplined approach may be followed all the same.
Everyone who wants to become a better programmer should read HtDP!
Learning Haskell through Category Theory
Benjamin Russell posts on learning Haskell through Category Theory here.
There are a lot of books listed. each with a detailed comment by Ben about the material. It looks interesting for folks who want to learn category theory.
The Dylan programming language Wiki
The Dylan programming language Wiki is the motherload for information on Dylan.
The Dylan Resource Guide
I started learning more about Dylan by reading the material listed in the Dylan Resource Guide in comp.lang.dylan. It is true what they say; Dylan and Scheme seem to be very similar. When you take into account what Dylan purports to offer, it sounds very interesting!
Here are some links from the resource guide:
- #dylan on Freenode. Channel logs are supposed to be available here; but were not as of this posting.
- comp.lang.dylan
- The Dylan Language Reference Manual: The “DRM” defines the Dylan language and standard library.
- Dylan Programming: Dylan Programming is a book that teaches how to program in Dylan.
- Gwydion Dylan: Gwydion Dylan is an open source command-line compiler originally developed by Carnegie Melon University as part of their Gwydion project. It is available on several platforms.
- Open Dylan: Open Dylan is an open source IDE originally developed by Harlequin and, later, Functional Objects. The IDE is available for Windows, and the compiler is available as a command-line program for other platforms.
The problem of tail calls and security on the JVM
Here are two papers that address the problem of tail calls and security on the JVM:
(via Jens via Debasish)
Profiling in PLT Scheme
Will posted here on how to profile applications in PLT Scheme.