Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

ITT: cons in our favorite language

Name: Anonymous 2008-10-03 23:43


typedef struct
{
    void * car;
    void * cdr;
}pair;

pair * cons(void * car, void * cdr)
{
    pair * toCons = malloc(sizeof(pair));
    toCons->car = car;
    toCons->cdr = cdr;
    return toCons;
}

Name: Anonymous 2008-10-04 6:57

    3. car. car[x] is defined if and only if x is not atomic. car [(e1 · e2 )] = e1 .
Thus car [X] is undefined.
car [(X · A)] = X
car [((X · A) · Y )] = (X · A)
    4. cdr. cdr [x] is also defined when x is not atomic.           We have cdr
[(e1 · e2 )] = e2 . Thus cdr [X] is undefined.
cdr [(X · A)] = A cdr [((X · A) · Y )] = Y
    5. cons. cons [x; y] is defined for any x and y. We have cons [e1 ; e2 ] =
(e1 · e2 ). Thus
cons [X; A] = (X A)
cons [(X · A); Y ] = ((X · A)Y )

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List