Lisp refactoring puzzle

William Clifford wobh at
Wed Jul 13 20:53:49 EDT 2011

Neil Cerutti <neilc at> writes:

> On 2011-07-12, Petter Gustad <newsmailcomp6 at> wrote:
>> Xah Lee <xahlee at> writes:
>>> it's funny, in all these supposedly modern high-level langs, they
>>> don't provide even simple list manipulation functions such as union,
>>> intersection, and the like. Not in perl, not in python, not in lisps.
>> In Common Lisp you have:
>> CL-USER> (union '(a b c) '(b c d))
>> (A B C D)
>> CL-USER> (intersection '(a b c) '(b c d))
>> (C B)
> What's the rationale for providing them? Are the definitions
> obvious for collections that a not sets?

This seems like a good general question to me, although, I feel like the
answer to this question specifically is "yes, obvious enough." A general
purpose programming language ought to be general enough to allow
expansion, but have enough "obvious" features, that one doesn't have to
reinvent the wheel.

I recently read somewhere that human languages "differ less in what they
allow, and more in what they require" (paraphrase). I have little-to-no
computer science expertise, but I sense that in computer languages with
Turing equivalency this is exactly true.

William Clifford

More information about the Python-list mailing list