[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[no subject]


    Date: 6 April 1980 11:23-EST
    From: Carl W. Hoffman <CWH at MIT-MC>
    To:   BUG-LISPM at MIT-MC

        HENRY@MIT-AI 04/05/80 23:09:23 Re:  CAR and CDR should send messages
        A user program wouldn't
        have to know what kind of list it was dealing with, it
        could just take CAR and CDR.

    This is what I said in my original message.
    I think this is very poor.

    There are all sorts of objects which may be chained together in a list-like
    structure, many of which are more complicated than just a cons.  Consider,
    for instance, the linking of free chaosnet packets, or the editor's line
    objects.  Using CAR and CDR to manipulate these lists would be extremely
    confusing.  Higher level naming conventions are used.

This just argues for higher level abstractions.  No one will disagree with you
on that account.

    My other objection to this proposal deals with syntax.  As long as this
    language includes both functional and message passing semantics, there
    should be some clear way to distinguish between the two.

Why?  You are requiring that the user program know the underlying
representation of the objects it is dealing with.  This is poor.  As long as
they behave as they should, eg, a car and cdr receiving object behaves like an
ordinary cons, then there is no need for this restriction.

    Finally, you should consider transportability.  This is almost impossible to
    implement in a system without microcoded CAR, whereas (<- X ':CAR), or
    better (<- X ':FIRST), is much easier.

CAR is already too smart for non-microcodeable machines.