The map-bind Reference Manual

Table of Contents

Next: , Previous: , Up: (dir)   [Contents][Index]

The map-bind Reference Manual

This is the map-bind Reference Manual, version 1.0, generated automatically by Declt version 2.4 "Will Decker" on Wed Jun 20 12:13:42 2018 GMT+0.


Next: , Previous: , Up: Top   [Contents][Index]

1 Introduction

Project's home: http://www.hexstreamsoft.com/projects/map-bind/


MAP-BIND is a macro that allows visual grouping of variables with
their corresponding values (not necessarily 1:1) in calls to mapping
operators when using an inline LAMBDA. It does so in a way that
automatically supports virtually every existing and future mapping
operator, all lambda keywords and FUNCALL/APPLY/MULTIPLE-VALUE-CALL
variations.

It does all this with a surprisingly simple implementation!


(map-bind (multiple-value-call #'map 'vector)
    ((symbol #(a b c))
     (number '(1 2 3))
     ((&rest others &key &allow-other-keys) (values '(d e f) #(4 5 6)))
     ((&aux (plus-ten (+ number 10)))))
  (list (1- number) symbol plus-ten (reverse others)))
==
(multiple-value-call #'map 'vector
                     (lambda (symbol number
                              &rest others &key &allow-other-keys
                              &aux (plus-ten (+ number 10)))
                       (list (1- number) symbol plus-ten (reverse others)))
                     #(a b c)
                     '(1 2 3)
                     (values '(d e f) #(4 5 6)))
=>
#((0 A 11 (4 D)) (1 B 12 (5 E)) (2 C 13 (6 F)))


This library is in the Public Domain.
See the UNLICENSE file for details.


Next: , Previous: , Up: Top   [Contents][Index]

2 Systems

The main system appears first, followed by any subsystem dependency.


Previous: , Up: Systems   [Contents][Index]

2.1 map-bind

Author

Jean-Philippe Paradis <hexstream@gmail.com>

License

Public Domain

Description

MAP-BIND is a macro that allows visual grouping of variables with their corresponding values (not necessarily 1:1) in calls to mapping operators when using an inline LAMBDA. It does so in a way that automatically supports virtually every existing and future mapping operator, all lambda keywords and FUNCALL/APPLY/MULTIPLE-VALUE-CALL variations.

Version

1.0

Source

map-bind.asd (file)

Components

Next: , Previous: , Up: Top   [Contents][Index]

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

3.1 Lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.1 map-bind.asd

Location

map-bind.asd

Systems

map-bind (system)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.2 map-bind/package.lisp

Parent

map-bind (system)

Location

package.lisp

Packages

map-bind


Previous: , Up: Lisp files   [Contents][Index]

3.1.3 map-bind/main.lisp

Dependency

package.lisp (file)

Parent

map-bind (system)

Location

main.lisp

Exported Definitions

map-bind (macro)

Internal Definitions

%parse-binding (function)


Next: , Previous: , Up: Top   [Contents][Index]

4 Packages

Packages are listed by definition order.


Previous: , Up: Packages   [Contents][Index]

4.1 map-bind

Source

package.lisp (file)

Use List

common-lisp

Exported Definitions

map-bind (macro)

Internal Definitions

%parse-binding (function)


Next: , Previous: , Up: Top   [Contents][Index]

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

5.1 Exported definitions


Previous: , Up: Exported definitions   [Contents][Index]

5.1.1 Macros

Macro: map-bind MAPPING-CALL-PROLOGUE BINDINGS &body BODY
Package

map-bind

Source

main.lisp (file)


Previous: , Up: Definitions   [Contents][Index]

5.2 Internal definitions


Previous: , Up: Internal definitions   [Contents][Index]

5.2.1 Functions

Function: %parse-binding BINDING
Package

map-bind

Source

main.lisp (file)


Previous: , Up: Top   [Contents][Index]

Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts

Jump to:   F   L   M  
Index Entry  Section

F
File, Lisp, map-bind.asd: The map-bind<dot>asd file
File, Lisp, map-bind/main.lisp: The map-bind/main<dot>lisp file
File, Lisp, map-bind/package.lisp: The map-bind/package<dot>lisp file

L
Lisp File, map-bind.asd: The map-bind<dot>asd file
Lisp File, map-bind/main.lisp: The map-bind/main<dot>lisp file
Lisp File, map-bind/package.lisp: The map-bind/package<dot>lisp file

M
map-bind.asd: The map-bind<dot>asd file
map-bind/main.lisp: The map-bind/main<dot>lisp file
map-bind/package.lisp: The map-bind/package<dot>lisp file

Jump to:   F   L   M  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

Jump to:   %  
F   M  
Index Entry  Section

%
%parse-binding: Internal functions

F
Function, %parse-binding: Internal functions

M
Macro, map-bind: Exported macros
map-bind: Exported macros

Jump to:   %  
F   M  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables


Previous: , Up: Indexes   [Contents][Index]

A.4 Data types

Jump to:   M   P   S  
Index Entry  Section

M
map-bind: The map-bind system
map-bind: The map-bind package

P
Package, map-bind: The map-bind package

S
System, map-bind: The map-bind system

Jump to:   M   P   S