[EMAIL PROTECTED] writes:
> > lacks a lot of features that I consider necessary for comfortable
> > programming, like garbage collection, reflection and built-in strings,
> > lists, dictionaries, vectors, and first-class functions.
> > 
> 
> C++ does have built in strings, lists, dictionaries, and vectors.  They are all
> part of the standard template library, and string is used as:

We're going off-topic here, but I'm pretty sure that you know as well
as I that "Hi" and "there" are (char const*). The STL is better than
nothing, but to me a library does not qualify as built-in.

> I'm not exactly sure what you mean by first-class function, but if you mean
> functors, or function objects (an object that is a function - better than a
> function pointer), C++ has those, too.

First-class means first-class citizens, that is, objects of that type
can be used in all language constructs just like other objects.  For
example, a function that returns a function in Scheme is natural,

 (define (iterate func k)
   "Produce the function x -> FUNC(FUNC .. (x) .. ) "
   (if (> k 0)
       (lambda (x) (func ((iterate func (1- k)) x)))
       (lambda (x) x)))

 (define to-6th-power (iterate sqr 3))

If you're suitably masochistic, then you could come up with a C++
solution, but I doubt it would be natural or elegant. Besides, I don't
appreciate masochism when it comes to programming.

> I'm not exactly sure what you mean by reflection, so I cannot comment.  As far
> as size, yes it's large, but I believe there are compiler settings to reduce the
> size by dropping some unnecessary libraries (like error handling).

I'm not referring to code size.

Quality of software is measured by its simplicity, and the 2000-page
thick C++ standard is a bad omen in this regard.

--
 Han-Wen Nienhuys   |   [EMAIL PROTECTED]   |   http://www.xs4all.nl/~hanwen 




_______________________________________________
Lilypond-devel mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to