On this page:
head
zip
traverse
8.3

3.3 列表

procedure

(head xs)  (Maybe/c any/c)

  xs : (listof any/c)
取出列表的头部。

Examples:
> (head (list))

(Nothing)

> (head (list 1))

(Just 1)

> (head (list "hello" "world"))

(Just "hello")

procedure

(zip xs ys)  (listof pair?)

  xs : (listof any/c)
  ys : (listof any/c)
cons合并。

Example:
> (zip '(1 2 3 4 5) '(a b c))

'((1 . a) (2 . b) (3 . c))

procedure

(traverse f xs)  (Maybe/c (listof b))

  f : (-> a (Maybe/c b))
  xs : (listof a)

Examples:
> (define (get a)
    (->maybe (and (> a 5) a)))
> (traverse get (list 10 11 12))

(Just '(10 11 12))

> (traverse get (list 7 6 5 4 3))

(Nothing)

> (traverse get (list 1 2 10 12))

(Nothing)

> (traverse get (list))

(Just '())