[gambit-list] Resources for learning scheme: Re: New user (& Questions)

John Ribe john at johnribe.com
Tue Jul 23 21:31:52 EDT 2013


Amirouche,
I will give you a few of my opinions.

I learned scheme in 1986 using the TI PC Scheme interpreter.  I read R3RS 
which seemed like a really well written and clear document, but I could 
not quite figure out how to actually use it.  And then by chance I 
stumbled upon the book "Structure and Interpretation of Computer Programs" 
-- that was the missing piece that let me put it all together.  It is an 
old book now but I still highly recommend it.  It was written as an 
introductory programming textbook and I was surprised how useful I found 
it because I regarded myself as a pretty experienced programmer at that 
time (and I had taken college level computer science courses).  A bonus is 
that the text is now available free on the web and there is a set of video 
lectures also available free presented by one of the books authors.  I 
think the R5RS is still a pretty readable document, don't go near the 
later RXRS specs until you feel you have a real mastery of scheme.

The book: http://mitpress.mit.edu/sicp/

The video lectures: 
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/video-lectures/

Maybe I am a stupid dinosaur, but I have always thought that object 
oriented languages seem to obfuscate programs by introducing an absurd 
amount of what I call "ceremony" (as in:  "Hello Mr Compiler.  Allow me to 
introduce you to my friend Variable X who will be used for such and such 
values and will be stored as a member of Object Z over here...).  So I 
agree completely with you "I came to Scheme and Gambit for its 
simplicity/minimalism, expressiveness, wisdom and also speed. " 

The reason I learned scheme in the first place was because I wanted to 
write a DSL that could be run in an interpretive environment.  It was a 
good choice for me but I will relate this to you:  over the course of 
several iterations my DSL became less and less of a DSL.  I eventually 
decided the effort of doing a DSL was a waste and instead decided that the 
people I wanted to share the program with would just have to learn to live 
with parenthesis.  The final documentation I wrote presents it to users as 
a DSL that uses a lisp like syntax, but in fact it is nothing more that a 
collection of top level variable definitions, procedures, and macros 
written in Scheme -- consider it.
 
John Ribe
John Ribe Consulting LLC
email: john at johnribe.com
office: 630 517 5040
cell: 214 532 9862
skype: john.ribe
linkedin profile: http://www.linkedin.com/in/johnribe




Amirouche Boubekki <amirouche.boubekki at gmail.com> 
Sent by: gambit-list-bounces at iro.umontreal.ca
07/23/2013 06:37 PM

To
gambit-list at iro.umontreal.ca
cc

Subject
[gambit-list] New user (& Questions)






Héllo,

A new user here, my name is Amirouche, I go by this name from the 
beginning of my life which is probably a short period of time but 
certainly not too much.

I define myself has being primarly a Python dev. I do web (or related and 
sometimes silly) things but that's not what pays the bills.

I came to Scheme and Gambit for its simplicity/minimalism, expressiveness, 
wisdom and also speed. 

Actually what triggered the need to try a LISP is a problem I encountered. 
I needed (or wanted) to keep the number of Python objects to a minimum 
while still maintaining maintainability and readability. But the thing is 
I'm jailed in the Python class system. I find myself fighting it to have 
the user API I want while still providing a clear inner architecture. For 
that matter, I use, so-called, advanced patterns like metaclasses and data 
descriptors which basically reduce maintainability because Python user 
seldom use them. Being less maintainable also means it's less pratical.

What I believe is that LISP-like languages are easier to build DSL while 
still keeping the concepts and code pratical. I'm not sure how much this 
is True. That said, I also believe, the reason why LISP-like languages 
were forgotten from the industry is because every project is a new 
language, I don't know how much True this is either. I also assume that 
LISP coming from academia, is though to not be pragmatic. Python being 
in-between has a privileged position.

Scheme having a small core, makes it I think more practical than LISP, 
somewhat easy to learn like Python. While still, making it possible to 
express problems and solutions in a clear, concise and efficient way. That 
said Scheme and Gambit in particular lakes documentation, except if SFRI 
are the documentation...

Those are all assumptions that I want to check.

Anyway, 

I tried to build Black Hole but it failed, I filled an issue.

Is there any procedure reference page I can read ? or is it the R5RS ?

See you around,

Amirouche_______________________________________________
Gambit-list mailing list
Gambit-list at iro.umontreal.ca
https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.iro.umontreal.ca/pipermail/gambit-list/attachments/20130723/0f096b49/attachment.htm>


More information about the Gambit-list mailing list