name | mode | size |
---|---|---|
.github | 040000 | |
t | 040000 | |
.gitignore | 100644 | 0 kb |
Dockerfile | 100644 | 0 kb |
LICENSE | 100644 | 11 kb |
Makefile | 100644 | 0 kb |
README.org | 100644 | 1 kb |
data-lens.asd | 100644 | 2 kb |
lazy-sequence.lisp | 100644 | 2 kb |
lens.lisp | 100644 | 14 kb |
optics.lisp | 100644 | 6 kb |
package.lisp | 100644 | 2 kb |
transducer-protocol.lisp | 100644 | 2 kb |
transducers.lisp | 100644 | 7 kb |
wrapped-sequence.lisp | 100644 | 2 kb |
* Intro
This library provides a language for expressing data manipulations as
the composition of more primitive operations.
#+BEGIN_SRC lisp
DATA-LENS> (funcall (on (alexandria:compose
(over (transform-tail (over (slice 1))))
(compress-runs :collector 'combine-matching-lists))
(alexandria:compose
(over (juxt (element 0)
'identity))
(sorted 'char<
:key (element 0))))
'("January" "February" "March" "April"
"May" "June" "July" "August"
"September" "October" "November" "December"))
#| ==> ((#\A "pril" "ugust")
(#\D "ecember")
(#\F "ebruary")
(#\J "anuary" "une" "uly")
(#\M "arch" "ay")
(#\N "ovember")
(#\O "ctober")
(#\S "eptember")) |#
#+END_SRC