Database Bindings for Scheme?
alexhmit01 asks: "One of my classes requires us to write a system that will deal with accessing huge amounts of random data. The catch? The project must be done in scheme. Storing the data in a Database would make indexing and searching the data MUCH easier than manually creating hash tables and other ugliness for which scheme is AMAZINGLY inefficient at. Does anyone know of ODBC, Postgres or MySQL bindings for Scheme (preferably MIT Scheme, but we could use a different Scheme if need be)?" While perusing around, I found this page which which contains some information about Scheme and Databases. Are there any other bindings for Scheme that will allow you to connect to various database backends?
Don't write your own hash table. MIT Scheme has a built-in hash table facility.
If you're supposed to write it in scheme, I would assume that if your prof wants you to write it in scheme, using a very large piece of code that somebody else wrote in different language wouldn't be acceptable.
You know it's funny: this assignment sounds like a lot of homework I've had to do this semester. Just in my experience, want to know what the answer was in every case? A Scheme program.
... I could go on.
Scheme is not AMAZINGLY bad or inefficient at anything. In fact, it (and more generally, Lisp) is arguably the greatest computer language in the history of the world. It still scares me to realize that designers of almost every other language in the modern computing era have had Lisp staring them in the face for the past half-century yet somehow still manage to miss the boat when it comes to simple, powerful things that should be in every language. A few examples would include: first-class procedures; lambda/unnamed functions; "scalar"/typeless variables; simple, non-ambiguous prefix notation; automatic memory management
My advice to you is to write your own hash table. It will consist of lists, car, and cdr - in others words, the same simple, basic things you've used to make pretty much everything else in Scheme. It will look infinitely more elegant that a bunch of cruddy database bindings which may or may not function as advertised.
Oh, and don't forget: Scheme can be compiled. I find this fact is frequently overlooked by C(++) bigots who shit on Scheme for being slow. Bigloo will almost always be within a few percentage points of an equivalent C program. With that in mind I'd remind you that Scheme isn't AMAZINGLY slow at anything: your algorithms are. If your program isn't running up to snuff then well my friend, as buddies in tech support used to say: PEBUAK.
(Problem Exists Between User And Keyboard)
I think there is a world market for maybe five personal web logs.