This site is a static rendering of the Trac instance that was used by R7RS-WG1 for its work on R7RS-small (PDF), which was ratified in 2013. For more information, see Home.

Source for wiki CombinatorsCowan version 2

author

cowan

comment


    

ipnr

74.68.121.27

name

CombinatorsCowan

readonly

0

text

This proposal contains various procedures that return procedures and a few others, drawn from Chicken.  Common Lisp has a few of them too.

`(always `''obj''`)`

Ignores its argument and always returns `#t`. 

`(never `''obj''`)`

Ignores its argument and always returns `#f`.

`(constantly `''obj'' ...`)`

Returns a procedure that always returns the ''obj'' objects as its values, regardless of the number and value of its arguments.

`(complement `''proc''`)`

Returns a procedure that returns the boolean inverse of ''proc''.  That is, it returns a true value when ''proc'' returns `#f`, and `#f` otherwise.

`(compose `''proc'' ... `)`

Returns a procedure that represents the composition of its arguments.  Any of the procedures may return multiple values, which are passed as arguments to its successor.  With zero arguments, `(compose)` returns a procedure that is functionally equivalent to `values`.

`(simple-compose `''proc'' ...`)`

A variant of `compose` that does not handle multiple-valued procedures. With zero arguments, returns a procedure that is functionally equivalent to `identity`.

`(conjoin `''predicate'' ...`)`

Returns a procedure that returns `#t` if its argument satisfies all the ''predicate''s.

`(disjoin `''predicate'' ...`)`

Returns a procedure that returns `#t` if its argument satisfies any of the ''predicate''s.

`(each `''proc'' ... `)`

Returns a procedure that applies each of the ''proc''s in turn to its arguments, discarding the results and returning an unspecified value.

`(flip `''proc''`)`

Returns a two-argument procedure that calls ''proc'', a two-argument procedure, with its arguments swapped.

`(identity `''obj''`)`

Returns ''obj''.

`(list-of? `''predicate''`)`

Returns a procedure of one argument that returns `#t` when applied to a list of elements that all satisfy ''predicate'', or `#f` otherwise.

`(map-reduce `''mapper reducer'' ...`)`

Returns a procedure that applies ''mapper'' to each of its arguments, and then applies ''reducer'' to all the results and returns what it returns.

time

2012-12-07 13:23:05

version

2