• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Please suggest some other language to use when reading SICP ?

 
Ranch Hand
Posts: 782
Python Chrome Ubuntu
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hello,

I plan to reread SICP.

I don't plan to use MIT Scheme http://mitpress.mit.edu/sicp/scheme/index.html

What modern functional language would you recommend ?

Thanks

Pho
 
Rancher
Posts: 379
22
Mac OS X Monad Clojure Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
The obvious answer would be Clojure.

At least one person has been converting the SICP examples to Clojure and publishing them on Github, I believe.
 
Rancher
Posts: 43081
77
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
A standard Scheme implemented in Java is Kawa. Whether something iike Clojure or Scala is appropriate depends on whether you want to stick with standard Scheme syntax.
 
Pho Tek
Ranch Hand
Posts: 782
Python Chrome Ubuntu
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
It is not important for it to be Lisp-y or scheme-like.
 
Sean Corfield
Rancher
Posts: 379
22
Mac OS X Monad Clojure Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Well, solutions written in anything non-Lisp-y is going to look very different - and there may well be parts of SICP that rely on features in Lisps, such as macros. Of course there may also be parts of SICP that rely on mutable data which would have to look rather different in Clojure too...

If you don't plan on using Scheme or Clojure, I guess my question would be: Why not?

SICP is written around a dynamically typed Lisp dialect. Clojure is the closest modern equivalent. Other options might be Erlang, F#, Haskell, or Ocaml - although you might argue Erlang, Haskell and Ocaml are not really "modern" so that's why I'd want to know more about your reasoning before trying to suggest other languages...
 
Bartender
Posts: 2407
36
Scala Python Oracle Postgres Database Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
+1 for Clojure as it would seem to offer you the benefits of a "modern" functional language, plus access to the JVM platform, and as a Lisp language should not offer too many obstructions/diversions in implementing the ideas from SICP.

You could look at Racket which is based on Scheme and is fun to use, although unlike Clojure it doesn't seem to be used much outside academia.

If you're determined to stay away from Lisps, maybe Scala would count as a "modern" FP language which is gaining traction in industry, but you may find you have to spend a lot more time trying to translate Scheme-based examples into an OO/FP hybrid language like Scala with its sophisticated (and fairly perplexing) static type system.

Haskell or ML would spare you the OO diversions of Scala, but you're still dealing with static typing again.

 
Pho Tek
Ranch Hand
Posts: 782
Python Chrome Ubuntu
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Ok. I think I will choose Clojure based on your inputs.
 
Sean Corfield
Rancher
Posts: 379
22
Mac OS X Monad Clojure Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
And there's a Clojure forum here on the ranch where you can ask for help, if needed!
 
passwords must contain 14 characters, a number, punctuation, a small bird, a bit of cheese and a tiny ad.
a bit of art, as a gift, that will fit in a stocking
https://gardener-gift.com
reply
    Bookmark Topic Watch Topic
  • New Topic