28

Hey, I'm a relative newbie to programming. I've picked up some very basic Java (File I/O, GUIs, inheritance) and would like to take a look at functional programming - in particular, I would like to learn Scheme. I'm having some trouble finding a Scheme implementation I can understand. Interpreters are weird; I'm not sure how to save my programs and create executables. I've downloaded PLT Scheme, but I would prefer using something less condescending, something similar to NetBeans. Is there a plugin or tool that will allow me to quickly and easily create and manage Scheme programs? All help is appreciated!

Gautam
  • 1,732
  • 4
  • 18
  • 26
  • 1
    You can also find best community recommended Scheme tutorials here: https://hackr.io/tutorials/learn-scheme – Saurabh Hooda Sep 15 '18 at 05:46
  • What's wrong with DrScheme as a Scheme beginner ? – Rhangaun May 07 '10 at 23:39
  • Nothing, I guess. I'm simply uncomfortable with the overly cheery interface, and find it difficult to do basic things like create, save, and run a program. The interface doesn't really matter; any advice on how to use DrScheme would be appreciated! – Gautam May 08 '10 at 01:26
  • DrScheme may not be the way to go to build stand-alone applications, but to experiment with Scheme, its file-based modules and its interactive shell (Read-Eval-Print-Loop) is all you need. – Rhangaun May 08 '10 at 18:15

11 Answers11

18

some nice links for you

Structure and Interpretation of Computer Programs

How to Design Programs

both are course books. The courses with video lectures are available on the MIT opencourseware site.

MIT OpenCourseWare: Structure and Interpretation of Computer Programs

ad absurdum
  • 19,498
  • 5
  • 37
  • 60
Sam
  • 2,427
  • 2
  • 23
  • 26
  • HTDP is not so about functional programming (even if it covers some concepts pretty well), but more about programming in general. Give it a try using DrScheme and don't worry yet about creating stand-alone applications or about interpreters/compilers. – Rhangaun May 08 '10 at 19:02
14

I wish I had learned Lisp when I was 16. (I started programming commercially at that age.) I didn't learn it until I was nearly 40. Where I was once blind, now I can see. (Well, I can see a few inches ahead of me anyway.)

I second the idea that someone else here posted about learning Emacs.

One good way to learn any language is to go solve problems on projecteuler.net.

Donnie Cameron
  • 786
  • 3
  • 13
8

Try the book The Little Schemer, it provides an unconventional but yet easy to follow tutorial on Scheme, and in particular teaches you how to "think" recursively, which is essential in order to understand Scheme (and other functional programming languages).

chikega
  • 135
  • 1
  • 6
fstuijt
  • 443
  • 2
  • 10
  • 4
    That's a link to SICP, not to the little schemer. This is the little schemer: http://www.ccs.neu.edu/home/matthias/BTLS/ but it's not available for free (as SICP is) – Jay Jun 14 '10 at 11:19
  • 1
    This is a wrong link (suggested 4 years ago)... – zhanxw Sep 05 '14 at 22:43
4

Get DrRacket (Runs on any platform) Get a book used from Amazon "The Scheme Programming Language" Cost $3.00 book $4.00 shipping When you open open DrRacket use language from the pull-down menu.

enter

scheme

on the top of the script window and start on the exercises!

.....that's what I am doing now

Community
  • 1
  • 1
2

SICP (Structure and Interpretation of Computer Programs) is sure a great book, but it is not necessary a good introduction to Scheme programming. Though, after some understanding of Scheme, reading SICP is recommended.

Learning to use Emacs as an editor would be useful. As a Scheme implementation I would recommend something like CHICKENscheme. Its manual describes for example how to deploy programs.

An alternative is a Scheme development environment like JazzScheme.

A good book for learning Scheme would be The Scheme Programming Language.

Rainer Joswig
  • 136,269
  • 10
  • 221
  • 346
2

I took a programming languages course in college that was done entirely in Scheme, and the textbook we used is "Programming Languages: Application and Interpretation" by Shriram Krishnamurthi, one of the guys who helped write DrScheme. The textbook is available freely online. I found the book to be really helpful and informative when trying to understand the arcane mysticism of Scheme.

Dave DeLong
  • 242,470
  • 58
  • 448
  • 498
2

I think the docs for plt-scheme is quite nice http://docs.plt-scheme.org/ is worth reading

and also: write code, write code, write code

1

Maybe this isn't the best answer but one of things I have found over the years is that a lot of new programmers get pulled in too many directions. If you are just starting out the best thing you can do (my opinion) is to learn one programming language really well. If possible I would try to make this the language you are working in, if you are not working in a programming job then I would try to pick a language with the best prospect of getting a job. Once you have mastered this one language then learning other languages will help enhance your already solid foundation and help make you an exceptional programmer.

Don't get me wrong, learning Scheme is a great thing to do but until you have mastered one language you will have a harder time moving up the ranks and landing that perfect job. In the end most companies are looking to hire the guru's, make sure you are in this group.

kjkerstens
  • 33
  • 1
  • 7
  • I don't know if Gautam's age is correct in his profile, but if so, he has plenty of time to learn :). Scheme is better than Basic :) – Maciej Hehl May 08 '10 at 00:43
  • Yeah, being 16 has advantages. – Gautam May 08 '10 at 01:24
  • 1
    Gautam - my apologies, I didn't realize that you were only 16. Please learn away, scheme will definitely expand your mind. One of the tricks that I use to learn new languages is to do a pet project, that is I have the same simple project that I keep doing over and over in different languages. This way I can compare the advantages / dis-advantages of each language solving the same problem. Have fun. – kjkerstens May 08 '10 at 02:51
1

A nice beginner intro to Lisp is Common Lisp First Contact

Not a heavyweight course like SICP mentioned above, but a gentle introduction to the syntax, features and oddities of Common Lisp in a nicely formatted PDF optimized for screen reading.

nickyp
  • 11
  • 1
0

Well I can't help You much with the tools. I tried MIT implementation and got a bit lost too, but I'd like to recommend a book which is a great source of knowledge about programming in general and uses scheme for illustrating ideas. If You din't come across this one yet, You have to check SICP

Maciej Hehl
  • 7,895
  • 1
  • 22
  • 23
0

If Java environment is already comfortable for you, then probably the best way is to use Scheme implementations that run on top of JVM. For educational purposes SISC is more than enough:

http://sisc-scheme.org/

Alternatively, you could use Kawa or Bigloo.

If you're up to learning functional ways, and not necessarily bound to Scheme, then probably Clojure would be a right choice.

SK-logic
  • 9,605
  • 1
  • 23
  • 35