Google Groups Home
Help | Sign in
Message from discussion What are the jewels of Scheme?
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
Shiro Kawai  
View profile
 More options Jan 3 2006, 4:13 pm
Newsgroups: comp.lang.scheme
From: "Shiro Kawai" <shiro.ka...@gmail.com>
Date: 3 Jan 2006 13:13:55 -0800
Local: Tues, Jan 3 2006 4:13 pm
Subject: Re: What are the jewels of Scheme?
What's good and bad about a language is context-dependent.
If you're using mouse when you edit code, probably Lisp-family language
isn't your choice.   It still isn't your choice even if you're
cursor-key
oriented.

When I first saw a long-time Lisp programmer editing (and debugging)
his
code on Emacs it blowed my mind.   His code was flying.   Basically,
once you get used to, you won't work on (and think on) per-character
basis anymore.  Instead, you work on per-expression.   No matter how
complex the expression is, spanning many lines or nested so deeply,
you can treat the whole expression with a few keystrokes---e.g.
cutting an expr, skip next two exprs, paste the original expr, then
adjust the whole indentation; or sending a whole expression to
interactive
REPL and check the result; or factoring out a subexpression and turning
it into a local function.   You get a feeling you are grabbing the code
itself, not the characters on the screen.

For your original question: probably it's easier to appreciate what's
special in Scheme by shifting your viewpoint from a language user
to a language designer---the former is to accept the language features
as given and unchangeable, and tries to write all the solutions in it;
while
the latter first look at the problem, think about what language is
suitable
to describe the problem, then write the language using the base
language.

One example: Python got list comprehensions recently.  That's a cool
feature to have.  You can write code more in a way you couldn't before.
Somebody posted a code in Scheme that implements list comprehensions
essentially in several lines.   It's a joy to have that.  And it has
always been
possible; you don't need to wait for somebody to add the feature.

bobuel...@yahoo.com wrote:
> Suppose tha n=-5 and d=-3. Is the condition after if true or false?

> In Scheme
>     (if  (or (and (>= n 0) (> d 0)) (and (< n 0) (> d 0)))

> In Python
>      if ((n>=0 and d>0) or (n<d and d>0)):

> Observations
> 1. Scheme takes 25% more characters then Python to express the
> condition
> 2. When I wrote Python I started from then left and finished at right,
> but when I wrote in Scheme I started in the middle and expanded
> outwards. I had to use the mouse much more then when I wrote the Python
> code
> 3. Maybe I'm brain damaged but it takes less time for me to see (and
> understand) that the Python code is correct then to see that the Scheme
> code is correct.

> Don't misunderstand me I'm no advocate of Python nor of Scheme. I'm
> just trying to compare and decide which language to invest time in.
> Somebody said that the jewels of Scheme are hidden. I've looked at
> Scheme a week or so and must admit that the statement is true because I
> haven't yet discovered those jewels. But I'm sure that they are there
> becuase I have high respect for people who invented and developed
> Scheme. On the other hand the jewels of Python are not hidden, but very
> visible. For instance introspection, metaclasses and native primitives
> like lists, tuples and dictionaries .

> I'm not interesting in war, I would just like to hear an honest opinion
> of what the jewels of Scheme really are.

> Bob


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.

Create a group - Google Groups - Google Home - Terms of Service - Privacy Policy
©2008 Google