Sigil 0.2.0
This release focuses on improving the idiomatic functional programming style of Sigil. New modules for sequences and function composition make it easier to write clean, composable code. Pattern matching gains dict, vector, and struct support, and several APIs have been refined for consistency.
Breaking Changes
- Module renamed:
(sigil exceptions)→(sigil error) - API changes:
mapandfor-eachnow operate on single lists only. Uselist-mapandlist-for-eachfor multi-list operations. - Renamed functions:
remove-directory→delete-directory,channel-close→channel-close!
New Modules
| Module | Description |
|---|---|
(sigil random) | Random number generation, shuffling, and sampling |
(sigil seq) | Polymorphic sequences and transducers |
(sigil array) | Efficient fixed-size collections |
(sigil fn) | Function composition: compose, pipe, partial, juxt |
Pattern Matching Improvements
- Dict pattern matching:
(match d ((dict a: x b: y) ...)) - Vector literal syntax:
#(a b c)patterns - New forms:
match-lambda,match-lambda* - Struct and vector pattern support
Other Enhancements
- Unicode case conversion:
char-upcase,char-downcase,string-upcase,string-downcasewith full Unicode support - HTTP client: Added chunked transfer encoding support
- CLI:
sigil cli upgradenow uses native HTTP client (no curl dependency) - Dict utilities:
dict-select,dict-rename-keys,dict-get-infor nested access - Threading:
some->macro for nil-short-circuiting pipelines