Is IronScheme suitable for working through SICP? - scheme

Will there be any incompatibilities with the code in SICP if I use IronScheme?

There shouldn't be any significant incompatibilities.
If you find any, why not post them here (as problems to solve), to document them?

You may want to use DrScheme (http://www.plt-scheme.org/) in 'Pretty Big' language mode and allow redefinition of initial bindings for working through code examples and exercises in SICP. I have been using it for trying out examples and exercises in SICP and have not run into any problems with the interpreter. It's also much more developed compared to IronScheme.

Related

Interpreting SCHEME for SICP

I have read through a bunch of Structures and Interpretations of Computer Programs and it has really captured me. I love they way it explains programming concepts. But the problem is that I don't know how to get MIT Scheme working. I don't know much about how to quickly interpret/compile in languages that require a compiler/interpreter. (doing it in JavaScript is incredibly easy) I have tried DrRacket but would love to use sublime text then quickly run it.
I have downloaded the official MIT-SCHEME bundle but I have no idea on how to get it actually working after 3 hours.
Thank you for reading!
It sounds like you may be familiar with the sicp package for Racket that allows you to write programs in a #lang sicp language. If you're interested in running them from the command line a la Javascript, that's certainly possible; if you run
racket
on a file that starts with #lang sicp (and you have the sicp package installed), it should run fine at the command line. It should be easy to bind this to a sublime command.
HTH

Where can I find math intense apps in Ruby

I have found many rails apps mainly on the enterprise, social networking kind of web apps. I see that Ruby is compared with some of the great OOPS languages like Java & C# but I am really finding it hard to get some Math Intense apps. Any knowledgeble input (links to sample programs etc.), where the usage of the language is shown with ease and is like jumpstart or show how the language can be used for variety of math probs, is greatly appreciated.
Unfortunately, Ruby hasn't ventured very far into mathematical and scientific computing. Currently, there is a pre-alpha library called SciRuby that is attempting to bring more math oriented capabilities to Ruby. They are trying to build a NumPy/SciPy equivalent. A few projects that are under SciRuby with example usage are:
NMatrix
Rubyvis
Statsample
Each project has various examples on how to get started/contribute. A good place to start is their docs and their mailing list.
Hope that helps.

Getting a stacktrace & using a debugger with Scheme

I am using Festival (the TTS software) and understanding it. It is written in Scheme and I am trying to get an execution flow for some of the programs therein. My questions are as follows:
Is there a debugger for Scheme?
How can I get a stacktrace for code written in Scheme?
Festival uses its own extended version of SIOD that is very small compared to most modern Scheme distributions. There is not much debugging support (the documentation's page on the subject is telling) but you may try using SIOD's documentation on possibly useful hooks.

Scheme & Smalltalk

Not really a question as such in here regarding Smalltalk and Scheme. I only started playing in Smalltalk 3 weeks ago and have been bouncing between Squeak and Pharo. Both are amazing its hard to think to me smalltalk isn't the most popular language going. Everything is in the one image I don't need an interactive command prompt an editor a web page for Rdoc etc I just do it click it mess around, heck if I do UiDesigner Open. I get a GUI app close to QT4. There are database utilities for my small databases like magma.
Anyway, I also started to play with Scheme in Racket and though there are a lot of () involved it still had a lot of simplicity; it seems to be quite logical from the get go. The only thing I am finding is that there are a lot of scheme/Lisp dialects. Racket seems to be quite an easy environment as well, however, notably, there seems to be Chicken and MIT Scheme.
Is there a particular reason I should be using Chicken over Racket or MIT? Or Vice Versa. Good System support, Database or GUI support...etc.
PS I am clearly not picking the most popular languages but I am having fun :-)
Both Racket and Chicken have good library support. (GUI, database, networking etc). If you are just having fun, I suggest you go with Racket. It has full support for the Scheme standards (R5RS, R6RS) and good documentation. There are a few good programming books that use Racket as the implementation language. On the other hand, if you are looking for portability of your compiled code across a wide assortment of hardware, Chicken might be better than Racket.
If R6RS is important to you, go with Racket. Chicken(among others) is not and will not be R6RS compliant, as there is a widespread perception that it is flawed. R7RS is being worked on and should address some of the concerns. As far as R5RS compliance goes, Chicken tries hard to stay in the standard (there are two pages in the manual listing differences). Racket is different enough that it shed the "Scheme" name a while ago.
That said, my preference lies with Chicken. Chicken's FFI is fantastic (even more so with the Bind egg). As it is compiled to C, interfacing with C libraries is a breeze. I have even added some of Chicken's runtime source files (a process documented in the manual) directly into an iPhone application I am working on, along with Scheme code translated to C, it works like a charm. There's no need to create a cross-compilation environment that way, as it is all C and compiled by XCode.
Chicken has a lot of eggs and growing every day. I suggest checking out the eggs page link text to see if it has what you need. If so, I strongly suggest giving it a try.

What is the best Scheme or LISP implementation for OS X? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 2 years ago.
Improve this question
I am looking for a version of Scheme or even LISP that I can use to recover some lost Lisp development skills. Some web capabilities would be nice but not essential.
I've looked at Plt and MIT scheme and, while both look pretty good, the Plt seems to be more feature rich. I've also looked at Lisp implementations but all of the seem quite expensive.
I favor free/inexpensive implementations as this is truly likely to just be occasional hobby programming. What recommendations would you have?
I'd go with Racket. It may not be as fast as SBCL, but it does have excellent libraries and documentation, as well as an integrated environment that's designed to get you developing and running Scheme programs right out of the gate. What I really like about Racket's IDE, DrRacket, is what you don't have to do—you don't have to learn Emacs, you don't have to learn SLIME, you don't have to worry about hunting down third-party libraries, as virtually all libraries meant for Racket can be found in packages. All in all, it really cuts down on the learning curve and allows you to focus on the actual task at hand: writing great code.
Also, it comes with a web server if you want to make Racket-powered websites (which I'm currently looking into).
I did quite a bit of experimenting with this.
Clozure Common Lisp (née Open MCL) is by far the fastest; 25-30 percent faster than the next competitor on my intel Mac Mini.
MIT Scheme works quite nicely on a Mac. I think I eventually compiled it myself, but there are binaries at that site. PLT Scheme is also nice, and possibly a little better integrated into the Mac world. (PLT Scheme is now known as Racket, but I haven't experimented with it after the change.)
I'm a huge fan of Clojure, SBCL, and Clozure CL. They are all fantastic, but they are also overkill if all you want to do is refresh your Lisping chops. They all require absurd amounts of info hunting, mailing list searching, package installing, irc lurking, etc.
Dr Scheme just installs and runs. I finished the first 3 chapters of SICP four and half years ago using Dr Scheme. Nothing was more profound than defining a Scheme evaluator in itself. Once you get your head around that you'll have a lot more patience for the industrial strength brethren.
For Scheme, DrRacket is awesome (included in Racket).
For Common Lisp, Ready Lisp is great. A single dmg with SBCL, Aquamacs and Slime working out of the box.
From the Web site:
Ready Lisp is a binding together of several popular Common Lisp packages especially for Mac OS X, including: Aquamacs, SBCL and SLIME. Once downloaded, you’ll have a single application bundle which you can double-click — and find yourself in a fully configured Common Lisp REPL.
It’s ideal for OS X users who want to try out the beauty of Common Lisp with a minimum of hassle. It could also be used by teachers to give their Mac students a free, complete Common Lisp environment to take home with them.
Requirements
The current version of Ready Lisp is 20090127 and requires Mac OS X 10.5 (Leopard).
It includes the following component software versions:
Aquamacs 1.6
SBCL 1.0.24
SLIME 2009-01-23
CL-FAD 0.6.2
CL-PPCRE 2.0.1
LOCAL-TIME 0.9.3
SERIES 2.2.10
CL HyperSpec 7.0
paredit.el 20
redshank.el 1
cldoc.el 1.16
I've just started playing with Clojure. It apparently has a nice web framework, and compiles to JVM bytecode.
I also use DrScheme quite a lot. It's a simple yet useful IDE.
Depending how you define "Lisp", Clojure may fit the bill. It runs on OS X fine (it runs anywhere the JVM runs). It has web capabilities and it's free.
It also has the benefit of being new and fresh and fun to use. Might be ideal for hobby programming. It's easy to write web apps or GUI apps (using Java's Swing or even Qt).
I haven't used it myself, but Steel Bank Common Lisp has received some favourable buzz over at reddit. It's open source and free so the price is right for some hobby programming.
In the past, I've had GNU Common Lisp running on my macbook pro.
If you are looking for Scheme you can take a look at just released JazzScheme.
I do recommend Racket to new-comers, since it provides one of the nicest IDE's for Scheme beginners (or rather, programming beginners who happen to be using Scheme, or better still, working their way through HtDP).
http://racket-lang.org/
Another option, for people who are more interested in a small Scheme system in order to modify it themselves or read its source code, is Larceny Scheme, which is of interest largely because its JIT compiler, Twobit, is itself implemented entirely in Scheme.
http://www.larcenists.org/
Update: In addition, Chez Scheme has recently been open sourced:
https://github.com/cisco/ChezScheme
(It may not be as "small" as Larceny, but it has a very aggressive optimizing compiler.)
If you're just hobby programming, LispWorks has a free, personal version which is quite powerful and sophisticated. It's biggest issue is a run time limit of several hours. So, you won't be writing any long running servers in it, but that doesn't mean it's not a useful tool.
CLISP runs on most everything, and is quite nice actually, it just doesn't do threads. (Important if you want to write an actual server, but as PHP and Perl have shown us, Apache + [insert language] is a very viable platform.)
You might want to look at what's at the Association of Lisp Users or the Common Lisp Wiki to see what's there. I set myself up with Steel Bank Common Lisp and Emacs, but have done little with it so far.
Clozure CL is available for free from the mac store!
http://itunes.apple.com/us/app/clozure-cl/id489900618
I have found that Chicken works well for Scheme and is available through homebrew.
brew install chicken
Most of the code from SICP works with minor modifications.
I've been asking myself the same question lately. Having used DrScheme on OS X it would be my first choice of Scheme distribution for any platform. Very nice IDE, debugging features and a good set of libraries/frameworks (including a very nice GUI toolkit that 'just works... even on Mac' ;-) )
However, I'm now looking for a similarly comfortable environment for Common Lisp. It came down to CCL (OpenMCL) versus SBCL. SBCL seems to be the popular choice but I read that on OS X is doesn't support threading. (Is this really an issue?). Clozure CL, on the other hand, boasts good support for native threads, the obcj-bridge, etc...
I'm finding CCL a little odd but I'm going to stick at it for a while - It still looks like the logical choice for integration.
I use Emacs 23 (built from source using --with-ns) and Slime as an environment and this works well for me. :-)
Go with Racket. I'm very happy with it!

Resources