Age | Commit message (Collapse) | Author |
|
* introduced `state::state_accessor` helper function and moved position logic into `updatePosition`
* added `IsEqual` comparator and expressed other basic comparators in terms of itself
|
|
* unifies the common functionality between `Take` and `Drop`
* renamed `basic.h` to `length.h` as it only contains the `Length` implementation
|
|
* opens up the possibility of implementing different sort algorithms in this library
* removed now unnecessary namespace prefixes
|
|
* continuation of 8e49cc6
* list constructor was generalized to a _variadic fold_
|
|
* while class templates enable e.g. hiding implementation details they also require evaluation via `Eval`
** this clutters up the actual logic and is now hidden behind aliae that perform the evaluation
|
|
* replaces `typename *::type` constructs with `Eval` applications
* aims to further unify function evaluation
|
|
* otherwise a type conflict occurs when trying to instantiate a list of `void`
** this hinders construction of higher level functionality on top of `List`
|
|
* _Quicksort_ is the algorithm of choice
** it lends itself quite well to the _TypeAsValue_ approach because of its recursive nature
** this required implementation of a `Drop` counterpart to `Take`
* the middle item of a given list is selected as the _pivot_ element
* the `List` list contructor had to be expanded to allow `void` arguments inside its variadic parameter pack
* added appropriate test cases
|
|
* this is analogous to _Scheme_ where a pair (dot-expression) is returned from a call to `cons`
* `Head` and `Tail` are kept as direct references to the `CAR` and `CDR` values of a pair to match e.g. the math operators
|
|
* enables construction of `Cons` structures using the same value type across all their elements
|
|
* this function illustrates the use case `Apply` is currently intended for
* moved `Take` and `Nth` into separate files to resolve header resolution conflicts
|
|
* added appropriate test case
|
|
|
|
|
|
* as its name implies this function returns the length of a given _Cons_ structure
* result type is `Size<Length>` which wraps `std::size_t` to match the `sizeof` operator
|
|
* concatenates two given _Cons_ based lists into a single one
|
|
* `Cons` is a straigth forward type _pair_ containing `car` and `cdr` typedefs
** they may be accessed using `Car` and `Cdr` helper template aliases
** there is no enforcement of _Cons_ structure and type equality whatsoever
*** i.e. similar to Scheme and different from how it is implemented in _ConstList_
* `List` is a recursive variadic helper template for constructing `Cons` value types
** simplifies _Cons_ construction and may be expanded to offer type deduction and built upon to enforce type equality
* added appropriate test cases
|