Here is the link; the source has a lot more.
(via comp.lang.scheme)
Author: grant
Sagittarius Scheme System
Sagittarius Scheme System is a “mostly R6RS Scheme system”.
(via scheme-reports)
A Slow Study Group for ML
Hi,
I’m going to work through
http://www.ccs.neu.edu/home/matthias/BTML/
and
http://www.cl.cam.ac.uk/~lp15/MLbook/
using
http://www.smlnj.org/
SLOWLY over MANY MONTHS.
The reason is that I’ve never learned a statically typed functional programming language, I feel weak on recursive data type definitions, and I am curious about compiler and interpreter construction. So, I’m looking for a way to learn about all 3 at once.
Why ML?
- Proven, excellent pedagogical language with great resources.
- Smaller than OCaml, F#, and Haskell; so I won’t get distracted with tons of “stuff”
- Puts me in a good position if I wanted to use it “for real” that OCaml, F#, Haskell, or even Scala and some other ML in Java languages would be a good follow up path in terms of leveraging the investment.
Basically when I sit down to learn the basics of anything from #2 I feel like they assume you know the basics of ML, and well, I don’t!
Let me know if you want to review problems together.
Whalesong: a Racket to JavaScript compiler
Whalesong is a compiler from Racket to JavaScript; it takes Racket programs and translates them so that they can run stand-alone on a user’s web browser. It should allow Racket programs to run with (hopefully!) little modification, and provide access through the foreign-function interface to native JavaScript APIs. The included runtime library supports the numeric tower, an image library, and a framework to program the web in functional event-driven style.
An All-Wheel-Drive KTM 950 Adventure
The rational for returning the identity for expressions such as (*) and (+)
This post in comp.lang.scheme brings up a question that inevitably everyone asks.
Suppose the answer is obvious but John summed it up well:
Well, if you interpret (apply + some-list) and (apply * some-other-list) as left-folds, then a starting point is needed, something to begin accumulating from. The identity is the only value that works correctly, so it’s what gets returned when the list being folded over has length 0. Nobody would write (+) or (*) explicitly, but having them return the identity is the Right Thing nevertheless.
The same argument applies when expanding macros: in a degenerate case, a macro may expand to (+) or (*), and it’s usually not appropriate to raise an exception.
UltraVNC Seems to Work Best for Windows to OSX
For connecting Windows to OSX via VNC; UltraVNC seems to work the best.
The other clients drop frequently.
AcroTEX and eqExam for the Truly Impatient
eqExam is just a wonderful LaTeX package for writing things like exams and quizzes. It takes into account most of what you are about right out of the box like whether you are proctoring the exam online or in printed form and whether you want an answer key printed or not. Here is an example of something that I threw together quickly by hacking up one of the example tests.
There are even really advanced things like exporting the answer data for automatic electronic submission; it’s got me really curious how people are using this in the wild.
Setup is really easy, the only caveat is that you must use MiKTEX version 2.8. Version 2.9 seems not to run at this point.
If you have never set up MiKTEX or eqExam before then my directions are attached here. Please let me know how it worked for you if you try them out.
One big question for some of you is why you would use something like this rather than MS Word or Adobe Acrobat Pro and it is a good question. The only answer that I can share is why it is so valuable for me… it is because you get to use all of the power of LaTeX to generate PDF forms and exams. That might sound like not a big deal, but if it doesn’t then you should really dig deeper into LaTeX to see how it could help you to better communicate.
R7RS Initial Results of Implementor Intentions Poll
The following all intend to support R7RS small:
- Per Bothner (Kawa)
- Will Clinger (Larceny)
- Shiro Kawai (Gauche)
- Manuel Serrano (Bigloo) – “not sure about libraries”
- Alex Shinn (Chibi) – “already fully implemented, but lacking tests”
- Felix Winkelmann (Chicken)
The following were less committal, but open, and their implementations are flexible enough to implement R7RS in third-party code:
- Kent Dybvig (Chez) – “if it’s as simple as you say I don’t see why not”
- Matthew Flatt (Racket) – “if there’s sufficient user demand”
- Andy Wingo (Guile) – “probably”
The following are simply unable to implement R7RS or uninterested in standards:
- Taylor Campbell (MIT) – “MIT lacks the infrastructure for modules”
- Jonathan Shapiro (TinyScheme) – thinks call/cc should be removed
- Jeffery Mark Siskind (Stalin) – “no longer working on Stalin”
- Michael Sperber (Scheme48) – “no time even for R6RS”
No one refused to implement based on the content of the standard, or cited any features as showstoppers.
That last part is important; R6RS didn’t have that quality.
(via scheme-reports)
Destructuring Lists Using CA*D*R vs First, Second, … vs Pattern Matching
This thread discusses the pros and cons of using the CA*D*R functions vs named first, second, third, list-tail, … and so on vs pattern matching for the same task.
I thought that pattern-matching was the best way to do it; and now I’m curious about why CA*D*R is better.