NAME
Acme::List::CarCdr - car cdr cdaadadrdrr
SYNOPSIS
use Acme::List::CarCdr;
my $can = Acme::List::CarCdr->new;
$can->car(qw/cat dog fish/); # "cat"
$can->cdr(qw/cat dog fish/); # "dog", "fish"
$can->cddr(qw/cat dog fish/); # "fish"
$can->c...r(...); # ...
See also the t/
directory of the distribution of this module for example code.
DESCRIPTION
car
or cdr
or caar
or cadadr
or so forth support for Perl.
METHODS
Many. Any combination of a
and d
may be used, up to the historically appropriate limit of 704 characters, to form a means of operating on a list, or list of lists of lists of some hopefully appropriate depth. Should an invalid method name be specified (for example, cat
) or if the method name is too long (704 characters, again, being the maximum combination of a
or d
allowed, or 706 with the requisite prefix and suffix characters of c
and r
) or should the supplied arguments be not deep enough for the number of a
somewhere in the method name, this module will throw an exception.
For those not intimately familiar with lisp (or the IBM 704 hardware instructions abducted by the said), moving from right to left, an a
gets the first element of a supplied list (cat
of the list cat dog fish
), and d
gets the remainder of the list (dog fish
). Repeated a
descend deeper into an again hopefully suitable data structure, while repeated d
reduce how much of the given list is returned (cddr
on the list cat dog fish
will return just fish
). Should too many d
run off the end of the supplied list, a bare return
call is made.
BUGS
Reporting Bugs
Please report any bugs or feature requests to bug-acme-list-carcdr at rt.cpan.org
, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Acme-List-CarCdr.
Patches might best be applied towards:
https://github.com/thrig/Acme-List-CarCdr
Known Issues
Things have not been tested exhaustively for correctedness.
SEE ALSO
perllol, and any number of a few documents on Lisp (or possibly Scheme).
INSTIGATOR
thrig - Jeremy Mates (cpan:JMATES) <jmates at cpan.org>
COPYRIGHT AND LICENSE
Copyright (C) 2015 by Jeremy Mates
This module is free software; you can redistribute it and/or modify it under the Artistic License (2.0).