Package {lisp}


Type: Package
Encoding: UTF-8
Title: List-Processing à La 'SRFI-1'
Version: 0.2
Date: 2026-06-13
Description: Provides list-processing utilities inspired by the 'SRFI-1' list library for Scheme (https://srfi.schemers.org/srfi-1/srfi-1.html), including car/cdr family accessors, zip, pairwise, for.each, pair.fold.right and friends. Higher-order helpers that are orthogonal to list processing are deferred to the 'functional' package; this package is freely a mixture of implementation and API.
License: GPL-2 | GPL-3 [expanded from: GPL (≥ 2)]
URL: https://github.com/klutometis/R-lisp
BugReports: https://github.com/klutometis/R-lisp/issues
LazyLoad: yes
Suggests: RUnit
Collate: 'lisp.R'
NeedsCompilation: no
Packaged: 2026-06-14 05:06:36 UTC; danenberg
Author: Peter Danenberg [aut, cre]
Maintainer: Peter Danenberg <pcd@roxygen.org>
Repository: CRAN
Date/Publication: 2026-06-15 10:50:12 UTC

Composite car/cdr

Description

Composite car/cdr

Usage

  caar(list)

Arguments

list

the list from which to extract

Value

The extracted elements


Composite car/cdr

Description

Composite car/cdr

Usage

  cadar(list)

Arguments

list

the list from which to extract

Value

The extracted elements


Composite car/cdr

Description

Composite car/cdr

Usage

  caddr(list)

Arguments

list

the list from which to extract

Value

The extracted elements


Composite car/cdr

Description

Composite car/cdr

Usage

  cadr(list)

Arguments

list

the list from which to extract

Value

The extracted elements


First element of a list

Description

First element of a list

Usage

  car(list)

Arguments

list

the list to first

Value

The first element


Composite car/cdr

Description

Composite car/cdr

Usage

  cdddr(list)

Arguments

list

the list from which to extract

Value

The extracted elements


Composite car/cdr

Description

Composite car/cdr

Usage

  cddr(list)

Arguments

list

the list from which to extract

Value

The extracted elements


Return elements after the first of a list.

Description

Return elements after the first of a list.

Usage

  cdr(list)

Arguments

list

the list from which to extract

Value

The elements after the first, or nil if only one


Try to get the cdrs; otherwise, return nil.

Description

Try to get the cdrs; otherwise, return nil.

Usage

  cdrs(...)

Arguments

...

lists to cdr

Value

the cdr of the lists


Apply f to the successive elements of ....

Description

Apply f to the successive elements of ....

Usage

  for.each(f, ...)

Arguments

f

the function to apply, whose arity should match the cardinality of ...

...

lists upon which to apply f successively

Value

NULL


Is a number even?

Description

Is a number even?

Usage

  is.even(a)

Arguments

a

the number to test

Value

Whether the number is even


Whether a list is empty.

Description

Whether a list is empty.

Usage

  is.nil(list)

Arguments

list

the list to test

Value

Whether the list is empty


Is a number odd?

Description

Is a number odd?

Usage

  is.odd(a)

Arguments

a

the number to test

Value

Whether the number is odd


Last element in a list.

Description

Last element in a list.

Usage

  last(list)

Arguments

list

The list to last

Value

The last element of list.


The empty list

Description

The empty list

Usage

  nil

Format

list()


pair-fold-right from SRFI-1.

Description

pair-fold-right from SRFI-1.

Usage

  pair.fold.right(f, nil, ...)

Arguments

f

function to apply over the list-tails

nil

the default value

...

the lists whose tails fold over

Value

The result of folding f over the successive tails (pairs) of the input lists; nil if the lists are empty.


Combine a list into pairwise elements; lists should be of the same length. In case of odd numbers of members, the last will be removed.

Description

Combine a list into pairwise elements; lists should be of the same length. In case of odd numbers of members, the last will be removed.

Usage

  pairwise(list)

Arguments

list

the list to be pairwise decomposed

Value

A list of pairwise elements


Zip n lists together into tuplets of length n.

Description

Zip n lists together into tuplets of length n.

Usage

  zip(zipper, ...)

Arguments

zipper

the zipping function

...

the lists to be zipped

Value

A list of tuplets


Zip using c.

Description

Zip using c.

Usage

  zip.c(...)

Arguments

...

the lists to be zipped

Value

A list of tuplets

See Also

zip


Zip using list.

Description

Zip using list.

Usage

  zip.list(...)

Arguments

...

the lists to be zipped

Value

A list of tuplets

See Also

zip


Do a less efficient zip whilst preserving names.

Description

Do a less efficient zip whilst preserving names.

Usage

  zip.with.names(...)

Arguments

...

lists to be zipped whilst preserving names

Value

A list of tuples (one per position) with names preserved from the input lists.