Simple library that encourage the use of functional programming + pattern matching.
defstruct
— provides truely nondestructive structure + integrates well to the pattern matchers (either optima or trivia).ftype
— shorthand expression ofdeclaim ftype
A variation of defstruct, with read-only slots and automatically defined constructor.
- Read-only, Noninterned Slot Name
- Standard
:read-only
feature in cl does not prohibit the use of slot-value. - Constructor Function with the Same Syntax as that of Pattern Matcher
- (<name> &optional <slots…>). No keyword argument.
Abbreviation of (declaim (ftype (function (<types...>) <type>) <name-or-names...>))
.
In a smart implementation like sbcl, using ftype
declaration is preferred
over the
and (declare (type ...))
.
Besides, defun
and ftype
both have 5 characters and gives cleaner code.
(ftype my+ fixnum fixnum fixnum) (defun my+ (a b) (+ a b))
This library is at least tested on implementation listed below:
- SBCL 1.2.8 on X86-64 Linux 3.13.0-45-generic (author’s environment)
Also, it depends on the following libraries:
- Trivia by me
- alexandria
- Alexandria is a collection of portable public domain utilities.
Copyright (c) 2015 Masataro Asai (guicho2.71828@gmail.com)
Licensed under the LLGPL License.