View Source Document

list-p.robin

;'<<SPEC'

### `list?` ###

    -> Tests for functionality "Evaluate Robin Expression (with literal)"

`list?` evaluates its argument, then evaluates to `#t` if it is a list,
`#f` otherwise.

    | (list? (literal (a b)))
    = #t

    | (list? (literal (a b c d e f)))
    = #t

    | (list? (prepend 4 (prepend 5 ())))
    = #t

The empty list is a list.

    | (list? ())
    = #t

Symbols are not lists.

    | (list? (literal a))
    = #f

The argument to `list?` may (naturally) be any type, but there must be
exactly one argument.

    | (list? (prepend 4 ()) (prepend 6 ()))
    ? abort (illegal-arguments ((prepend 4 ()) (prepend 6 ())))

    | (list?)
    ? abort (illegal-arguments ())

'<<SPEC'

(require list?)