Age | Commit message (Collapse) | Author | |
---|---|---|---|
2015-01-22 | Released _TypeAsValue_ under the terms of the MIT license | Adrian Kummerlaender | |
2015-01-22 | Implemented Scheme like `Concatenate` in terms of `Fold` and `Append` | Adrian Kummerlaender | |
* added appropriate test case | |||
2015-01-22 | Renamed `Concatenate` to `Append` to match Scheme function naming | Adrian Kummerlaender | |
2015-01-21 | Implemented `Contains` in terms of `Any` | Adrian Kummerlaender | |
* as its name implies this _function_ simplifies checking if a specific value is contained within a given list * updated `Map` to actually resolve the provided _function_ | |||
2015-01-21 | Moved `Reverse` into separate header | Adrian Kummerlaender | |
* it is not in itself a higher order function but only based on one | |||
2015-01-20 | Added `README.md` as overview | Adrian Kummerlaender | |
2015-01-20 | Added higher order list query `None` | Adrian Kummerlaender | |
2015-01-20 | Implemented higher order list queries `All` and `Any` | Adrian Kummerlaender | |
* in terms of `Fold` and `Map`, not the most efficient but reasonably concise * added appropriate test cases | |||
2015-01-20 | Added basic boolean logic operations | Adrian Kummerlaender | |
2015-01-19 | Indented test cases to improve readability | Adrian Kummerlaender | |
2015-01-19 | Added type and value equality test case | Adrian Kummerlaender | |
2015-01-19 | Replaced Google-Test with `static_assert` based test cases | Adrian Kummerlaender | |
* as everything this library does happens during compile time it can be checked using standard language features ** i.e. `static_assert` already offers everything needed for test cases in this situation | |||
2015-01-19 | Moved `Odd` helper into math operation header | Adrian Kummerlaender | |
* it may be useful for more than test cases | |||
2015-01-19 | Implemented `Filter` in terms of `Fold` | Adrian Kummerlaender | |
* as its name implies this _function_ only returns elements which evaluate to _true_ when passed to a given _function_ ** this marks the moment where _TypeAsValue_ supports something _ConstList_ does not, i.e. primary goal is achieved *** namely returning different types depending on the actual _values_ of a _Cons_ structure * added appropriate test case | |||
2015-01-18 | Implemented `Reverse` function in terms of `Fold` | Adrian Kummerlaender | |
2015-01-18 | Implemented `Map` in terms of `Fold` | Adrian Kummerlaender | |
* as its name implies this _function_ applies a given _function_ to each element of a _Cons_ structure * added appropriate test case | |||
2015-01-18 | Reimplemented `Length` function in terms of `Fold` | Adrian Kummerlaender | |
* this removes the need for maintaining a partial overload of `Length` * the recursive traversion of the _Cons_ structure is now implemented by `Fold` instead of needlessly duplicating it | |||
2015-01-18 | Implemented higher order function `fold` | Adrian Kummerlaender | |
* applies a given _function_ to each _Cons_ starting with a initial value * added appropriate test case | |||
2015-01-17 | Replaced `If` based `Nth` implementation with partial specializations | Adrian Kummerlaender | |
* partial specializations offer control over lazy type instantiation ** `If` is currently only a `std::conditional` wrapper and requires further refinement to be really useful for this kind of use case | |||
2015-01-17 | Implemented `Take` function | Adrian Kummerlaender | |
* as its name implies this function _takes_ a maximum of _Count_ elements of a list * added appropriate test case | |||
2015-01-17 | Implemented `Nth` function | Adrian Kummerlaender | |
* as its name implies this function returns the _nth_ value of a given _Cons_ structure * added appropriate test case | |||
2015-01-17 | Extracted list operations into separate _operation_ headers | Adrian Kummerlaender | |
2015-01-17 | Implemented `Length` function | Adrian Kummerlaender | |
* 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 | |||
2015-01-17 | Added Scheme representation to test cases as a kind of documentation | Adrian Kummerlaender | |
2015-01-16 | Implemented recursive `Concatenate` _Cons_ constructor | Adrian Kummerlaender | |
* concatenates two given _Cons_ based lists into a single one | |||
2015-01-16 | Implemented basic `Cons` value type and `List` constructor | Adrian Kummerlaender | |
* `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 | |||
2015-01-16 | Capitalized math operations to fit naming scheme | Adrian Kummerlaender | |
2015-01-16 | Implemented `tav::If` as `std::conditional` wrapper | Adrian Kummerlaender | |
2015-01-16 | Redefined function template structs as template aliases | Adrian Kummerlaender | |
2015-01-15 | Extracted basic math operations into separate header | Adrian Kummerlaender | |
2015-01-15 | Removed unnecessary restrictions of the standard operator rules | Adrian Kummerlaender | |
2015-01-15 | Completed basic math operators and fixed their result type | Adrian Kummerlaender | |
* the result type now depends on the `decltype` of the performed operation | |||
2015-01-15 | Added basic value type alias and math operations | Adrian Kummerlaender | |
2015-01-15 | Initial project structure | Adrian Kummerlaender | |