Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
C# is not Dylan (was: Re: C# : The new language from M$)
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  Messages 126 - 150 of 214 - Collapse all  -  Translate all to Translated (View all originals) < Older  Newer >
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
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Rob Myers  
View profile  
 More options Jul 4 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: Rob Myers <r...@h2g2.com>
Date: 2000/07/04
Subject: Re: C# is not Dylan (was: Re: C# : The new language from M$)
Erik Naggum ranted:

>   Well, it _was_ broken for -- all of 362 minutes, and fixed thanks to
>   a good Lisp user who informed me about the problem in a way that

Are the Evil Lisp users the ones who have been replaced by space aliens?
The ones you will have to kill Come The Day? They're here, Erik, it's starting!

>   Languages shape the way we think.

I didn't realise you were a Klingon speaker.

>   And assuming it's a _backup_ address...

Erik, I'm sorry. Please tell me how to describe that address. I promise
I won't use the word "backup" about your email again ouside of
description of its content.

- Rob.

--
r...@h2g2.com - Rob Myers - http://www.robmyers.org/
"Don't talk to sociologists. Social practice has no sociological
content."
- Art & Language.


 
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.
Erik Naggum  
View profile  
 More options Jul 4 2000, 3:00 am
Newsgroups: comp.lang.lisp, comp.lang.dylan
Followup-To: comp.lang.lisp
From: Erik Naggum <e...@naggum.net>
Date: 2000/07/04
Subject: Re: C# is not Dylan (was: Re: C# : The new language from M$)
* "Michael T. Richter" <m...@igs.net>
| <tone style="sarcasm">
| A very cogent rebuttal.  I have now seen the error of my ways.  You
| are a truly fiendish disputante for you have undone an opinion based
| upon years of effort with a simple, two-syllable word.
| </tone>

  Let's _quote_ from some of Michael T. Richter's eloquence on display
  for all the world to see (well, that part of the world which thinks
  Dylan is all the world, anyway):

  In <6Qi85.18115$ZI2.545...@news1.rdc1.on.wave.home.com>, Michael
  T. Richter <m...@ottawa.com>, presumably the same _gentleman_, writes:

  "Hey fuckhead"

  Granted, it's two words and three syllables, which could imply that
  Michael T. Richter is anywhere between 50% and 100% more cogent than
  Dave Bakhash's "bogus", but since the first word is but a noise word
  to get attention, it isn't worth anything at all, which means we're
  dealing with a neanderthal who is very envious of humans.   Worse,
  yet, "bogus" is _way_ more cogent than "fuckhead", but then again,
  Dave is a Lisp user and Michael is a Dylan user, and we know what
  kind of people _they_ are: ...

| Yes, Lisp has its advantages.  Readability isn't one of them.

  ... hostile, illiterate bums who hate their parens, as this new
  evidence of eloquence and cogency shows so clearly.

#:Erik
--
  If this is not what you expected, please alter your expectations.


 
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.
Rob Myers  
View profile  
 More options Jul 4 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: Rob Myers <r...@h2g2.com>
Date: 2000/07/04
Subject: Re: C# is not Dylan (was: Re: C# : The new language from M$)
Erik Naggum whined:

>   "Hey fuckhead"

I thought you appreciated economy of expression and its accompanying accuracy?

> and we know what kind of people _they_ are: ...

And I repeat: didn't you have something to say about people who make
sweeping generalizations?

- Rob.

--
"Don't talk to sociologists. Social practice has no sociological
content." - Art & Language.


 
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.
Erik Naggum  
View profile  
 More options Jul 4 2000, 3:00 am
Newsgroups: comp.lang.lisp, comp.lang.dylan
Followup-To: comp.lang.lisp
From: Erik Naggum <e...@naggum.net>
Date: 2000/07/04
Subject: Re: C# is not Dylan (was: Re: C# : The new language from M$)
* Rob Myers <r...@h2g2.com>
| Are the Evil Lisp users the ones who have been replaced by space
| aliens?  The ones you will have to kill Come The Day? They're here,
| Erik, it's starting!

  Please leave me out of your insanity, Rob.  Please ask your doctor
  to reconsider the suggestion to use USENET for therapeutic purposes.
  You just be calm, now.  You _don't_ need to hurt yourself, OK?  You
  can get through this stressful period safely.  Just take your anti-
  psychotic medication and try to stay away from challenges to your
  beliefs, and this will all be over in a couple days, OK?  If you try
  and avoid responding to me, you'll soon feel much better, too.

#:Erik
--
  If this is not what you expected, please alter your expectations.


 
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.
tejavu  
View profile  
 More options Jul 4 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: tej...@my-deja.com
Date: 2000/07/04
Subject: Re: C# is not Dylan (was: Re: C# : The new language from M$)
In article <WJn85.1486$8Q5.17...@news22.bellglobal.com>,
  "Michael T. Richter" <m...@ottawa.com> wrote:

>     for (i = 0.0; i < 1.0; i++)
>     {
>         print(i);
>     }

That syntax is actually not as good as you think.  You of course
carefully removed any bugs from it to show it in a positive light,
but in spite of your best efforts, it doesn't increment the iterator
correctly, and is therefore not equivalent to the code you were
trying to compare it with.

Sent via Deja.com http://www.deja.com/
Before you buy.


 
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.
Joe Marshall  
View profile  
 More options Jul 4 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: Joe Marshall <jmarsh...@alum.mit.edu>
Date: 2000/07/04
Subject: Re: C# is not Dylan (was: Re: C# : The new language from M$)
"Michael T. Richter" <m...@igs.net> writes:

I forget.  What do the `;' mean?  Do they always mean the same thing
everywhere, or do they mean different things in different places?  I
also don't understand the function invocation:  is FOR being invoked
on 7 arguments (i, =, 0.0;, i, <, 1.0;, i++)?  Or do parenthesis mean
different things in different places, too?

Or perhaps it is the case that the keyword FOR has its own syntax that
is similar to the syntax of the rest of the code.  In which case an
experienced user knows what to expect in a FOR statement.  How does
this differ from the lisp version of FOR?  


 
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.
Hannah Schroeter  
View profile  
 More options Jul 4 2000, 3:00 am
Newsgroups: comp.lang.lisp, comp.lang.dylan
From: han...@schlund.de (Hannah Schroeter)
Date: 2000/07/04
Subject: Re: C# is not Dylan (was: Re: C# : The new language from M$)
Hello!

In article <39618db4$...@spamkiller.newsfeeds.com>,

Janos Blazi <jbl...@vipsurf.de> wrote:
>(/ (+ (- b) (sqrt ( - (* b b) (* 4 (* a c))))) (* 2 a))

Besides from changing reader syntax:

(let*
 ((discriminant (- (* b b) (* 4 a c)))
  (numerator (- (sqrt discriminant) b))
  (denominator (* 2 a)))
 (/ numerator denominator))

>[...]

Regards, Hannah.

 
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.
Erik Naggum  
View profile  
 More options Jul 4 2000, 3:00 am
Newsgroups: comp.lang.lisp, comp.lang.dylan
Followup-To: comp.lang.lisp
From: Erik Naggum <e...@naggum.net>
Date: 2000/07/04
Subject: Re: C# is not Dylan (was: Re: C# : The new language from M$)
* Rob Myers <r...@h2g2.com>
| And I repeat: didn't you have something to say about people who make
| sweeping generalizations?

  I'm so glad you asked.  Yes, of course, but I'm trying to learn
  about the Dylan ways by studying such fine gentlemen as yourself.
  Remember, languages shape the way we think, so in order to think
  like a Dylanite or whatever your neanderthal race is called, I must
  study how you perform in the big challenge that is life.  For Dylan
  users, specifically, random, unchecked assumption are perfectly OK,
  sweeping generalizations even better, and so naturally one has to
  deal with neanderthals such as your community on your own premises.

  You _surely_ can't mean that when a number of Dylanites prove to the
  world that when they make sweeping generalizations about others, and
  the _others_ object, they have _not_ communicated clearly that it is
  OK to apply sweeping generalizations to _themselves_?  I don't think
  very highly of the Dylan community, but the sheer inability to grasp
  that when you do something to others out of moral righteousness, it
  most certainly must be OK to apply it back to yourself is too much
  -- even I don't think _that_ badly of neanderthals morons.  And lest
  you object -- _you_ have most certainly proven beyond _any_ doubt
  that there's one law for you (Dylanites) and one law for everyone
  else, so I'm just trying to do the smallest things to accomodate you
  Dylanites.  Out of courtesy, you know -- _your_ kind of courtesy.

#:Erik
--
  If this is not what you expected, please alter your expectations.


 
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.
Aaron Crane  
View profile  
 More options Jul 4 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: Aaron Crane <aaron.cr...@pobox.com>
Date: 2000/07/04
Subject: Re: C# is not Dylan (was: Re: C# : The new language from M$)
In article <WJn85.1486$8Q5.17...@news22.bellglobal.com>,
"Michael T. Richter" <m...@igs.net> writes:

> David Bakhash <ca...@alum.mit.edu> wrote in message
> news:c29vgylykwt.fsf@nerd-xing.mit.edu...
> > (for ((i 0.0) (< i 1.0) (+ i 0.1))
> >   (print i))

> The point is that cramming a half-dozen completely different sets of
> semantics into one syntax makes the resulting code hard for human readers.
> Having the code illustrate through visual cues that you're dealing with
> something which is semantically different aids human readers.

I'd disagree that you get a half-dozen sets of semantics.  At a stretch, I'd
identify two -- function call, and macro invocation.  But that's a minor
detail.

> Using the equivalent C "for" construct...

>     for (i = 0.0; i < 1.0; i++)
>     {
>         print(i);
>     }

> ...(and remembering that I'm trying to escape the C-influenced world, so
> don't make the usual error of assuming I'm a C apologist) I have the
> following information provided for free without any need for picking apart
> the code:
> - I'm entering an enumerated, top-test loop.  ("for")

Sure.  The first word tells you what's going on.

> - There is assignment to a variable.  ("=")

Just like this almost identical one for C9x or C++, I take it?

    for (double i = 0.0;  i < 1.0;  i += 0.1) {
        print(i);
    }

Except that in this case, the "=" means `initialize', not `assign', and it
turns out that they're different.  If you're trying to argue that it's
better to have visually distinctive syntax for operations with different
semantics, then C is certainly not the right language to hold up as an
example -- even if you're not trying to be an apologist for C.

> - There is an in-place increment of a variable.  ("++")

(You actually wanted "i += 0.1" to get the same meaning as David's loop, but
I'll assume that's an oversight.)

Are you really concerned that there's an in-place increment of a variable,
or merely that the value of the variable increases over time?  If the
latter, then I would claim that having to specify "in-place increment"
merely clutters the code without adding anything of interest.

> - There is a code block.  ("{}")

Of course there's a code block -- it's a loop.  This seems a somewhat
specious means of increasing your count of differing semantics.  I'd also be
inclined to suggest that the visual cue for "code block" is not the brace
pair, but the additional indentation.  Lisp does the same thing: you read
not the parentheses, but the indentation.  (And in my opinion, Lisp has two
significant advantages here.  Firstly, the conventions that have arisen for
indenting Lisp are much closer to universal than any of the competing
conventions for languages like C.  Secondly, the highly regular nature of
Lisp syntax makes it pretty trivial to perform this sort of indentation
automatically.)

> - There is a function invocation.  ("()")

It's unclear to me why you think that visually marking function invocation
is a particularly good idea.  Surely the majority of all code is function
invocations?  This certainly applies to Lisp.  For C, the argument against
this idea is that the infix operators aren't functions; but C++ abandons the
distinction.

> Your code tells me that I'm entering an enumerated, top-test loop for free.
> After that I have to parse what's there to get the semantics.

So write your FOR macro differently.  When I was young(er) and (more)
foolish, I wrote a FOR macro that allowed syntax like this (among a too-wide
variety of other styles):

    (for (0 <= i < 1 :step 1/10)
      (print i))

(All sensible combinations of <, <=, >, >= are permitted, and the :step part
is optional.)  I actually really like this syntax; I find that it describes
what is going on far more clearly than any other syntax I've seen.

Alternatively, you could use the standard LOOP macro:

    (loop for i from 0 to 9/10 by 1/10 do
      (print (float i)))

Seems entirely readable to me.  (As an aside, note that this version does
actually give you the desired answer; using floating-point arithmetic is
probably a pretty bad idea here.)

To return to your initial point that visual cues are useful, and that Lisp
syntax provides fewer such cues than many other languages: I don't deny
either the utility of visual cues, or the fact that some Lisp forms may
overuse nested parentheses (DO being an example).  But Lisp's approach to
syntax, in which you can use macros and reader macros to alter what the
programmer sees, enables you to construct syntax that is convenient for what
you're doing.  Regarding DO in particular, my experience is that many if not
most uses of this form are actually hidden away in macros that relate to
some abstraction.  Though they needn't be implemented in terms of DO, the CL
macros DOLIST, DOTIMES, DO-SYMBOLS are good examples of what I mean.

--
Aaron Crane   <aaron.cr...@pobox.com>   <URL:http://pobox.com/~aaronc/>
 ** Please send on-topic followups by Usenet, not email **


 
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.
Keke Abe  
View profile  
 More options Jul 4 2000, 3:00 am
Newsgroups: comp.lang.lisp, comp.lang.dylan
From: nom...@spam.org (Keke Abe)
Date: 2000/07/04
Subject: Re: C# is not Dylan (was: Re: C# : The new language from M$)

Janos Blazi wrote:
> (/ (+ (- b) (sqrt ( - (* b b) (* 4 (* a c))))) (* 2 a))

> ot something like that (I have not checked if the formula is correct) still
> looks messy and I wonder if practicing would help.

(/ (+ (- b)
      (sqrt (- (* b b)
               (* 4 a c))))
   (* 2 a))

What you need is not a pratice, just a decent editor.

abe

--
keke at mac com


 
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.
Tim Bradshaw  
View profile  
 More options Jul 4 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: Tim Bradshaw <t...@cley.com>
Date: 2000/07/04
Subject: Re: C# is not Dylan (was: Re: C# : The new language from M$)

* Aaron Crane wrote:
> I'd disagree that you get a half-dozen sets of semantics.  At a stretch, I'd
> identify two -- function call, and macro invocation.  But that's a minor
> detail.

special forms are a third.

--tim


 
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.
David Bakhash  
View profile  
 More options Jul 4 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: David Bakhash <ca...@alum.mit.edu>
Date: 2000/07/04
Subject: Re: C# is not Dylan (was: Re: C# : The new language from M$)

thanks, joe. I could never have said it better.  As I recall, {}'s can
mean enums, code blocks, etc. etc.  There's definately lots of that in C
and its friends.

Also, a word on "bogus".  I use that word as a rather light-hearted
word.  I didn't mean to offend or denigrate anyone's opinions or
justifications; I mearly was expressing a *difference* of opinion, where
something that was an opinion seemed to be stated as if it were fact.
It seemed to me as if the poster was implying that it's a bad thing that
in CL you could define macros, and that they generally obfuscate the
language.  Well, no one says you have to write macros, unless you're
working alone, working on a Lisp project won't be too fun for you.

dave


 
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.
Gareth McCaughan  
View profile  
 More options Jul 4 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: gj...@g.local (Gareth McCaughan)
Date: 2000/07/04
Subject: Re: C# is not Dylan (was: Re: C# : The new language from M$)

Michael T. Richter wrote:

[David Bakhash:]

[SNIP: Michael explains why he prefers "for"]

For readability by inexperienced humans, I don't think either
of these approaches comes close to

    (loop for i from 0 by 0.1 below 1.0 do
      (print i))

Some Lispers detest LOOP. I'm glad it's there, because it's
a great tool for expressing simple iterations simply. (Most
iterations are simple. Hairy ones are tricky to understand
whatever language you express them in.)

For slightly more complicated iterations, compare C's

    for (p=items; p; p=p->next) {
      do_something(p);
    }

with Lisp's

    (loop for item in items do
      (do-something p))

No comparison, I reckon.

Note that the Lisp versions also isolate the binding of the
loop variable to within the loop, which is usually what you
want. Doing that in C requires more braces and an extra
declaration.

Now, I know you're not primarily defending C. But if the issue
is the readability of C's iteration constructs versus that of
Lisp's, I think it's a one-way contest, and not in the direction
you're suggesting.

Some bits of C's syntax *are* much easier for the non-immersed
to grasp. For instance, I think assignments and arithmetic are
clearer in C than in Lisp, unless you have a little reader
macro that lets you write

    { x = (5 * y + 7) / (y + 3) }

(which isn't hard; there are such things out there and in the
public domain). On the other hand, I find that I never use them;
one gets used to the syntax of Lisp.

--
Gareth McCaughan  Gareth.McCaug...@pobox.com
sig under construction


 
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.
vsync  
View profile  
 More options Jul 4 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: vsync <vs...@quadium.net>
Date: 2000/07/04
Subject: Re: C# is not Dylan (was: Re: C# : The new language from M$)

gj...@g.local (Gareth McCaughan) writes:
> Some Lispers detest LOOP. I'm glad it's there, because it's
> a great tool for expressing simple iterations simply. (Most
> iterations are simple. Hairy ones are tricky to understand
> whatever language you express them in.)

I detest LOOP.  The whole point of Lisp IMO is the parens and the
prefix notation.  Why screw that up with some weird English-like
thingie that just looks _wrong_?  As to simple and complex iterations,
I don't find using MAPCAR or DOLIST or just plain DO to be hard to
understand.  I just spend 5 minutes reading the manual _before_ I try
something for the first time.

> Note that the Lisp versions also isolate the binding of the
> loop variable to within the loop, which is usually what you
> want. Doing that in C requires more braces and an extra
> declaration.

Java (and C++ IIRC) let you do this:

  for (int i = 0; i < MAX_SIZE; i++)
    do_something_with(i);

i is only within the scope of that loop.

--
vsync
http://quadium.net/ - last updated Fri Jun 30 22:55:16 MDT 2000
(cons (cons (car (cons 'c 'r)) (cdr (cons 'a 'o))) ; Orjner
      (cons (cons (car (cons 'n 'c)) (cdr (cons nil 's))) nil)))


 
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.
Paul F. Dietz  
View profile  
 More options Jul 4 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: "Paul F. Dietz" <di...@interaccess.com>
Date: 2000/07/04
Subject: Re: C# is not Dylan (was: Re: C# : The new language from M$)

vsync wrote:
> I detest LOOP.  The whole point of Lisp IMO is the parens and the
> prefix notation.  Why screw that up with some weird English-like
> thingie that just looks _wrong_?

Because the result is often easier to understand
that the equivalent code without LOOP.

But then I grew up on Interlisp, so maybe it's
a cultural thing.

        Paul


 
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.
vsync  
View profile  
 More options Jul 4 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: vsync <vs...@quadium.net>
Date: 2000/07/04
Subject: Re: C# is not Dylan (was: Re: C# : The new language from M$)
"Paul F. Dietz" <di...@interaccess.com> writes:

> vsync wrote:

> > I detest LOOP.  The whole point of Lisp IMO is the parens and the
> > prefix notation.  Why screw that up with some weird English-like
> > thingie that just looks _wrong_?

> Because the result is often easier to understand
> that the equivalent code without LOOP.

> But then I grew up on Interlisp, so maybe it's
> a cultural thing.

I think that's true.  I learned Lisp from Paul Graham's _ANSI Common
Lisp_, and he smacks LOOP down pretty hard.  I think I would have
disliked it anyway, though, as my preference is to do things in the
way most fitting to the language.  LOOP just doesn't seem very "Lispy"
to me.

But it's great that the different facilities are there.  It's not just
in Perl that "there's more than one way to do things".  =)

--
vsync
http://quadium.net/ - last updated Fri Jun 30 22:55:16 MDT 2000
(cons (cons (car (cons 'c 'r)) (cdr (cons 'a 'o))) ; Orjner
      (cons (cons (car (cons 'n 'c)) (cdr (cons nil 's))) nil)))


 
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.
Will Hartung  
View profile  
 More options Jul 4 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: "Will Hartung" <vft...@home.com>
Date: 2000/07/04
Subject: Re: C# is not Dylan (was: Re: C# : The new language from M$)
vsync <vs...@quadium.net> wrote in message

news:87sntpjyvm.fsf@piro.quadium.net...

> gj...@g.local (Gareth McCaughan) writes:

> > Some Lispers detest LOOP. I'm glad it's there, because it's
> > a great tool for expressing simple iterations simply. (Most
> > iterations are simple. Hairy ones are tricky to understand
> > whatever language you express them in.)

> I detest LOOP.  The whole point of Lisp IMO is the parens and the
> prefix notation.  Why screw that up with some weird English-like
> thingie that just looks _wrong_?  As to simple and complex iterations,
> I don't find using MAPCAR or DOLIST or just plain DO to be hard to
> understand.  I just spend 5 minutes reading the manual _before_ I try
> something for the first time.

No, the whole point of Lisp is that things such as LOOP can be created at
all, within the language itself. Otherwise we wouldn't be having this
discussion.

Will Hartung
(vft...@home.com)


 
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.
Hartmann Schaffer  
View profile  
 More options Jul 4 2000, 3:00 am
Newsgroups: comp.lang.lisp, comp.lang.dylan
From: h...@inferno.nirvananet (Hartmann Schaffer)
Date: 2000/07/04
Subject: Re: C# is not Dylan (was: Re: C# : The new language from M$)
In article <oLi85.18114$ZI2.543...@news1.rdc1.on.wave.home.com>,
        "Michael T. Richter" <m...@ottawa.com> writes:

>>> That's the first time I've seen someone describe a profusion of
>>> parentheses as "clean".

>> lisp only looks longwinded and confusing on the surface.

> If something looks confusing, it likely is.

everything looks confusing to the uninitiated.  mathematical notation
is an excellent example, but after having learned a little bit about
it, most people prefer it over the alternatives.  imo the same applies
to lisp

> ...
>> imho the simple syntax of lisp is a *huge* advantage for lisp.

> If unreadability is supposed to be an advantage, I guess I'm all for it.

see above

--

Hartmann Schaffer


 
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.
David Bakhash  
View profile  
 More options Jul 4 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: David Bakhash <ca...@alum.mit.edu>
Date: 2000/07/04
Subject: Re: C# is not Dylan (was: Re: C# : The new language from M$)

David Bakhash <ca...@alum.mit.edu> writes:
> ...Well, no one says you have to write macros, unless you're working
> alone, working on a Lisp project won't be too fun for you.

I was in a rush.  What I meant by that was that as a CL programmer, you
don't _have_ to use macros, but that if you're working in a group of
more more than one person, then you're gonna have a hard time, since so
many people _do_ use macros in Lisp.  

The real point, though, was that macros, properly used, are supposed to
clarify code on the whole, make it more readable, and easier to write.
The WITH-OPEN-FILE example from another thread illustrates this nicely.

dave


 
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.
David Bakhash  
View profile  
 More options Jul 5 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: David Bakhash <ca...@alum.mit.edu>
Date: 2000/07/05
Subject: Re: C# is not Dylan (was: Re: C# : The new language from M$)

this goes without say, and LOOP is _exactly_ how most people would do
this example.

> Some Lispers detest LOOP.

This will likely change over time.  

One thing I must say about the readability, or unreadability of Lisp
code is that when you're diving into other people's heavy macrologies,
things can often get very difficult to read, and know what's going on.
If it all works, then it's usually okay.  But when you're debugging
other people's code, one often depends on macroexpansion to see what's
going on.  If macros are written correctly, well documented, and maybe
even show an example or two of usage, then what is to some a burden can
easily become a friendly tool.

dave


 
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.
Christopher Browne  
View profile  
 More options Jul 5 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: cbbro...@knuth.brownes.org (Christopher Browne)
Date: 2000/07/05
Subject: Re: C# is not Dylan (was: Re: C# : The new language from M$)
Centuries ago, Nostradamus foresaw a time when David Bakhash would say:

The only thing worse than LOOP is the set of alternatives to LOOP.

The C "for" construct is _used as_ a looping construct; it is rather
better compared to DO, whether we're talking the Common Lisp DO, or
the Scheme DO.  

In either case, DO, just like C's "for," represents a primitive control
structure that doesn't really structure things very strongly.  You can
do virtually anything in the clauses, as opposed to the way that LOOP
supplies both name bindings _as well as control over what they do_.

C provides neither bindings nor control; you need to pre-declare your
variables, and manually set up the clauses to do "the right things."

DO provides bindings, but no control.  You have to manually set up the
clauses to do "the right things," namely initializing, incrementing, and
comparing.

In contrast,
     (loop for i from 0 by 0.1 below 1.0 do
       (print i))
shows that LOOP is supporting all three of these things:
-> It creates a binding for "i"
-> It supplies the code to increment and test i, based on a _description_
   of what is to be done to i.

>> Some Lispers detest LOOP.

>This will likely change over time.  

I don't much like LOOP, but find that the alternatives are largely
_worse_.

There are two _major_ cases:
a) If you're doing a relatively simple loop, LOOP is pretty nice.

b) If you're doing a _really complex_ loop, LOOP is pretty nasty, but
   so are the alternatives.

It might be a Nice Thing to revisit LOOP, and make up a "cleaner"
design.  An ambitious person might want to show us what a "better
LOOP" might look like with a sample implementation.

>One thing I must say about the readability, or unreadability of Lisp
>code is that when you're diving into other people's heavy macrologies,
>things can often get very difficult to read, and know what's going on.
>If it all works, then it's usually okay.  But when you're debugging
>other people's code, one often depends on macroexpansion to see what's
>going on.  If macros are written correctly, well documented, and maybe
>even show an example or two of usage, then what is to some a burden can
>easily become a friendly tool.

Herein lies the _other_ merit of LOOP that exists whether you use it or
not; it provides an example of a sophisticated language embedded in
Common Lisp using macros.

Other languages have nothing of comparable nature, AT ALL.
--
aa...@freenet.carleton.ca - <http://www.ntlug.org/~cbbrowne/lisp.html>
"[In 'Doctor' mode],  I spent a good ten minutes  telling Emacs what I
thought of it.   (The response was, 'Perhaps you could  try to be less
abusive.')"  -- Matt Welsh


 
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.
Rob Myers  
View profile  
 More options Jul 5 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: Rob Myers <robmy...@cwcom.net>
Date: 2000/07/05
Subject: Re: C# is not Dylan (was: Re: C# : The new language from M$)

> From: Erik Naggum <e...@naggum.net>
> Subject: Re: C# is not Dylan (was: Re: C# : The new language from M$)

> Please leave me out of your insanity, Rob.

It's insane to deny the existence of space aliens? You're further gone than
I thought! Come on, say it: "The people around Erik have not been replaced
by alien pods. Erik does not have to kill them Come The Day." .

> Please ask your doctor
> to reconsider the suggestion to use USENET for therapeutic purposes.
> You just be calm, now.  You _don't_ need to hurt yourself, OK?  You
> can get through this stressful period safely.  Just take your anti-
> psychotic medication and try to stay away from challenges to your
> beliefs, and this will all be over in a couple days, OK?  If you try
> and avoid responding to me, you'll soon feel much better, too.

Well, with that stunning, if unintentional, piece of self-description on
your part, my work here is done.

All that's left is for you to prove me right about you having to have the
last word again, and you can go back to being the list Village Idiot.

- Rob.


 
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.
Immanuel Litzroth  
View profile  
 More options Jul 5 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: immanuel_litzr...@hotmail.com (Immanuel Litzroth)
Date: 2000/07/05
Subject: Re: C# is not Dylan (was: Re: C# : The new language from M$)
e...@naggum.net (Erik Naggum) wrote in <3171713054143...@naggum.net>:

I agree and would like to add that the argument only holds for "long
mathematical formulae having only two argument operators that are
predefined in the language". Otherwise you have to write your operators as
prefix function application or start messing about with infix declarations
which may have unknown interactions with other code you are using.

The simple, uniform way in which these mathematical expressions are written
makes them easy to generate or analyze for various mathematical purposes
such as reduction, simplification, optimization etc. Not having to bother
with writing a parser is a timesaver and a parser/pretty-printer can always
be added after the interesting part is finished.
Immanuel


 
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.
Dave Pearson  
View profile  
 More options Jul 5 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: davep.n...@davep.org (Dave Pearson)
Date: 2000/07/05
Subject: Re: C# is not Dylan (was: Re: C# : The new language from M$)
On 04 Jul 2000 17:16:26 -0600, vsync <vs...@quadium.net> wrote:

> "Paul F. Dietz" <di...@interaccess.com> writes:

> > Because the result is often easier to understand that the equivalent
> > code without LOOP.

> > But then I grew up on Interlisp, so maybe it's a cultural thing.

> I think that's true. I learned Lisp from Paul Graham's _ANSI Common Lisp_,
> and he smacks LOOP down pretty hard. I think I would have disliked it
> anyway, though, as my preference is to do things in the way most fitting
> to the language. LOOP just doesn't seem very "Lispy" to me.

I become familiar with CL via the same book. IIRC Graham makes the point
that writing "languages" within CL is a common thing to do, perhaps even a
"Lispy" thing to do. Given that I've always thought that LOOP was *very*
"Lispy".

--
Take a look in Hagbard's World: | boxquote.el - "Boxed" text quoting.
http://www.hagbard.demon.co.uk/ |  sawfish.el - Sawfish mode.
http://www.acemake.com/hagbard/ |  uptimes.el - Record emacs uptimes.
emacs software, including.......| quickurl.el - Recall lists of URLs.


 
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.
Simon Brooke  
View profile  
 More options Jul 5 2000, 3:00 am
Newsgroups: comp.lang.lisp
From: Simon Brooke <si...@jasmine.org.uk>
Date: 2000/07/05
Subject: Re: C# is not Dylan (was: Re: C# : The new language from M$)

David Bakhash <ca...@alum.mit.edu> writes:
> The real point, though, was that macros, properly used, are supposed to
> clarify code on the whole, make it more readable, and easier to write.
> The WITH-OPEN-FILE example from another thread illustrates this nicely.

There's kind of a trade off though, isn't there? The top-level code
gets more readable, surely, but when you have to debug something deep
in a pile of macros, it can get really nasty and brain-twisting.

Macros need to be *very* carefully tested and debugged before you build
anything on top of them, in my opinion.

--
si...@jasmine.org.uk (Simon Brooke) http://www.jasmine.org.uk/~simon/

                 'You cannot put "The Internet" into the Recycle Bin.'


 
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.
Messages 126 - 150 of 214 < Older  Newer >
« Back to Discussions « Newer topic     Older topic »