Louis Dionne
d951c3b594
core: document and test the type class instantiation system
2014-06-12 13:33:38 -04:00
Louis Dionne
e93f1eb4e0
Range: make the implementation less naive
2014-06-12 13:33:38 -04:00
Louis Dionne
48ec7b231e
Foldable: add examples for some methods
2014-06-12 13:33:38 -04:00
Louis Dionne
e943411fd6
Remove Doxygen warnings.
2014-06-12 09:38:59 -04:00
Louis Dionne
ed9d70d8bf
Remove redundant _template_ keyword.
2014-06-12 09:02:02 -04:00
Louis Dionne
beca8ade95
Iterable: use the new dispatching system
2014-06-12 09:00:11 -04:00
Louis Dionne
60a1741016
Use the new dispatching system with Monad.
2014-06-12 07:06:18 -04:00
Louis Dionne
ec10170b57
Use the new dispatching system with Foldable and Functor.
2014-06-12 07:02:24 -04:00
Louis Dionne
9b1cdd81b9
Comparable: update the dispatching system
2014-06-11 16:43:10 -04:00
Louis Dionne
1d81e02944
Fix a bug with c-style variadics in at_index and improve arg<>
2014-06-10 15:12:49 -04:00
Louis Dionne
809101956b
Type: add construction capabilities
2014-06-09 18:22:33 -04:00
Louis Dionne
d572e3b094
functional: consider making compose variadic
2014-06-09 18:22:33 -04:00
Louis Dionne
e9267aecc8
Type: documentation and example for untype
2014-06-09 18:22:31 -04:00
Louis Dionne
293b066ea4
TypeList: fix the ADL-related bug
2014-06-09 13:19:20 -04:00
Louis Dionne
ee6c805ca8
Type: decouple library from its internal representation
2014-06-09 10:39:05 -04:00
Louis Dionne
2567066828
Type: documentation and decoupling
2014-06-08 16:41:52 -04:00
Louis Dionne
e376b606e1
Monad: documentation
2014-06-08 09:05:17 -04:00
Louis Dionne
2f88b2d40b
range: documentation and type decoupling
2014-06-08 09:03:41 -04:00
Louis Dionne
71a70764e8
maybe: documentation and API improvements
2014-06-07 17:32:34 -04:00
Louis Dionne
d3883f98f6
List: remove done "todo" item
2014-06-05 23:38:34 -04:00
Louis Dionne
415b5c6906
List: fix a bug in head; don't use c-style variadics
2014-06-05 22:55:19 -04:00
Louis Dionne
d4d82639f5
List: documentation and examples
2014-06-05 22:47:39 -04:00
Louis Dionne
aea42f9d18
Integral: Fix a bug with negative literals.
2014-06-05 22:45:55 -04:00
Louis Dionne
b694f5e465
Integral: Strip cv-qualifiers of the integral type.
2014-06-05 21:17:06 -04:00
Louis Dionne
80d115e017
Sandbox: add a linked list, std::array and std::string
2014-06-05 16:24:14 -04:00
Louis Dionne
e86b9d3f4a
Sandbox: add a possible infix operator implementation
2014-06-05 03:34:12 -04:00
Louis Dionne
8cd1863896
Move length from Iterable to Foldable.
2014-06-04 22:19:42 -04:00
Louis Dionne
12058791c7
Documentation: improvements in Integral
2014-06-04 22:04:55 -04:00
Louis Dionne
61f0770b44
Integral: refactoring, documentation and decoupling
2014-06-04 21:24:31 -04:00
Louis Dionne
5b4d569962
Type: Add decltype_ and remove coupling.
2014-06-04 21:24:19 -04:00
Louis Dionne
ac30caf7dc
Comparable: improve documentation
2014-06-04 15:35:46 -04:00
Louis Dionne
50ebbfffc3
Documentation: move a couple of todos to the Doxygen doc
2014-06-04 14:15:57 -04:00
Louis Dionne
99a6e58487
Functional: Add note about infix operators.
2014-06-04 12:26:41 -04:00
Louis Dionne
a1ab4fab6b
Functional: add fbind
2014-06-04 11:54:09 -04:00
Louis Dionne
178b25476d
Functional: add arg<n>
2014-06-04 11:29:08 -04:00
Louis Dionne
806981bbcf
Functional: remove argwise, add on and lockstep
2014-06-04 11:29:00 -04:00
Louis Dionne
c0b7a91e31
Move any, all and none to Foldable.
2014-06-03 12:28:05 -04:00
Louis Dionne
91689fe4f0
Make the header comment and license uniform.
2014-06-03 11:46:24 -04:00
Louis Dionne
4b61774472
Add lazy_foldr to Foldable.
2014-06-03 11:38:54 -04:00
Louis Dionne
ce602dd4b4
Document a couple more components.
2014-06-02 21:52:26 -04:00
Louis Dionne
6215e82a01
Improve type traits and partially document Integral.
2014-06-02 21:49:36 -04:00
Louis Dionne
49cbdbdd6e
Document the Core module.
2014-06-02 21:49:36 -04:00
Louis Dionne
1cebe9821d
Document the Functional module.
2014-06-02 21:49:35 -04:00
Louis Dionne
b0ebffce2f
Check Monad laws.
2014-06-01 12:18:51 -04:00
Louis Dionne
e77dab7c55
Generalize curry.
2014-06-01 10:03:07 -04:00
Louis Dionne
7b70a24d2b
Add user-defined literal for integral constants.
2014-05-31 15:36:02 -04:00
Louis Dionne
cec5d4edf8
Add unpack and remove Functor from Range.
2014-05-31 14:55:11 -04:00
Louis Dionne
7562f8cecf
Add argwise to functional.
2014-05-31 14:41:34 -04:00
Louis Dionne
418b8941ad
Test Functor laws and modify Type's fmap.
2014-05-31 10:40:21 -04:00
Louis Dionne
decb1a4d8c
Add curry<n> to functional.
2014-05-27 15:46:52 -04:00
Louis Dionne
3d9480855e
Make Typelist a transparent optimization.
2014-05-27 15:07:01 -04:00
Louis Dionne
3bb00967ef
Make Maybe a Monad.
2014-05-27 14:12:11 -04:00
Louis Dionne
9e74d48e3c
Define operator== and operator!= for Comparables.
2014-05-27 13:36:54 -04:00
Louis Dionne
09274a9ea3
Make List a Monad.
2014-05-27 11:12:05 -04:00
Louis Dionne
5f616bb4f5
Add the Monad typeclass and make Type a Monad.
2014-05-27 11:01:20 -04:00
Louis Dionne
49672fd986
Introduce datatypes for dispatching.
2014-05-27 10:52:53 -04:00
Louis Dionne
eda7ea303a
Add a more efficient at_index algorithm.
2014-05-26 14:21:29 -04:00
Louis Dionne
d85eb7ccb2
Add init to List and implement length better.
2014-05-26 12:32:38 -04:00
Louis Dionne
6086633003
Add sort and partition.
2014-05-26 11:27:05 -04:00
Louis Dionne
12273221e1
Add placeholders in functional/.
2014-05-26 10:07:27 -04:00
Louis Dionne
003b3ae4b9
Add count to Foldable.
2014-05-25 19:28:00 -04:00
Louis Dionne
c611dcfd73
Allow runtime bool conditions in if_.
2014-05-25 19:24:06 -04:00
Louis Dionne
f1694b3f4c
Add find and drop_until to Iterable.
2014-05-25 18:45:10 -04:00
Louis Dionne
93f11124a7
Add the Maybe datatype.
2014-05-25 18:36:43 -04:00
Louis Dionne
24b907db66
Add drop_while to Iterable.
2014-05-25 17:33:41 -04:00
Louis Dionne
080fe25e2b
Reduce the number of instantiated variable templates in list_t.
2014-05-25 11:20:04 -04:00
Louis Dionne
d2f725f6fe
Add Typelist; an optimized List for types.
2014-05-25 11:06:18 -04:00
Louis Dionne
316f6a14ec
Optimize foldl for lifted computations.
2014-05-25 09:51:41 -04:00
Louis Dionne
05593b652c
Redefine lift as an equivalence of categories.
...
This allows us to mechanically translate most type traits, which is
a good hint that we've found a way to merge type computation with
value computation. The problematic type traits will be tackled later.
2014-05-24 19:06:41 -04:00
Louis Dionne
5d57f6808d
Use homemade integer_sequence in Range.
2014-05-24 15:41:55 -04:00
Louis Dionne
fd567bd8b1
Add homemade integer_sequence.
...
<utility> is way too large to include just for that.
2014-05-24 15:41:46 -04:00
Louis Dionne
88f59cf114
Move std_* to adapted/.
2014-05-24 13:28:48 -04:00
Louis Dionne
d1133c917b
Split type and traits into two headers.
2014-05-24 12:39:12 -04:00
Louis Dionne
b9e8bf180d
Add left_folds::variadic_unrolled.
2014-05-23 16:00:40 -04:00
Louis Dionne
d59b31d184
Use simpler recursion.
2014-05-23 15:28:05 -04:00
Louis Dionne
9d88d63133
Put decltype(lift<f>) into detail namespace.
2014-05-22 12:46:16 -04:00
Louis Dionne
60f524dba4
Add default behavior for equal and not_equal.
2014-05-21 19:22:22 -04:00
Louis Dionne
c0e005672e
Adapt std::integer_sequence.
2014-05-21 19:22:01 -04:00
Louis Dionne
54a61c7cbe
Remove dependency on cstddef in integral.hpp
2014-05-21 18:58:22 -04:00
Louis Dionne
46eacef345
Implement details with if_ instead of pattern matching.
2014-05-21 18:55:14 -04:00
Louis Dionne
6c87bb8d93
Adapt std::tuple.
2014-05-21 18:37:56 -04:00
Louis Dionne
8a87ec288a
Implement List with lambdas.
2014-05-21 18:12:09 -04:00
Louis Dionne
2b890a71f3
Use the y combinator in take_while.
2014-05-21 16:32:12 -04:00
Louis Dionne
0032d4bedb
Add the fixpoint combinator.
2014-05-21 16:32:12 -04:00
Louis Dionne
b7440c5190
Use constexpr lambdas whenever possible. Wow.
2014-05-20 18:29:38 -04:00
Louis Dionne
f168f94b43
Use if_ whenever possible in Iterable.
2014-05-20 17:23:04 -04:00
Louis Dionne
20ae6e927c
Add partial to functional/.
2014-05-20 16:48:47 -04:00
Louis Dionne
43e5a4e943
Split unit tests for List.
2014-05-20 16:26:59 -04:00
Louis Dionne
b66c0e8c14
Add list_t.
2014-05-20 13:50:44 -04:00
Louis Dionne
a3036c2bc4
Add id, compose, always and flip.
2014-05-19 17:16:31 -04:00
Louis Dionne
e8f1a71671
Add more functions to List.
2014-05-19 16:39:53 -04:00
Louis Dionne
7d4b1108ab
Add sum and product.
2014-05-19 15:38:57 -04:00
Louis Dionne
0fb1d96522
Adapt std::array.
2014-05-19 13:01:01 -04:00
Louis Dionne
8c7cdf7e02
Add functional utilities.
2014-05-19 12:15:44 -04:00
Louis Dionne
1fac38b7bc
Add any, all, none and {any,all,none}_of.
2014-05-18 20:27:58 -04:00
Louis Dionne
e511cff396
Add logical operations.
2014-05-18 18:21:33 -04:00
Louis Dionne
d6819d4dc6
Add the Comparable type class.
2014-05-18 17:57:01 -04:00
Louis Dionne
033770cc42
Add zip_with to List and improve Foldable.
2014-05-18 15:26:35 -04:00
Louis Dionne
cb06f221cf
Fix minor bug in BOOST_HANA_STATIC_ASSERT.
2014-05-18 15:20:42 -04:00
Louis Dionne
02b62cb8e7
Add if_.
2014-05-17 23:53:24 -04:00
Louis Dionne
ebe7b15a54
Add operators to Integral
.
2014-05-17 21:00:05 -04:00
Louis Dionne
60add46fb4
Add drop
to Iterable.
2014-05-17 20:46:25 -04:00
Louis Dionne
44138a1a53
Add type traits to Type.
2014-05-17 18:31:30 -06:00
Louis Dionne
49a15742a5
Add default operations to Iterable.
2014-05-16 08:46:05 -06:00
Louis Dionne
edb09990fc
Add hana::Type.
2014-05-16 08:26:56 -06:00
Louis Dionne
6305321da3
Add Foldable.
2014-05-16 08:17:24 -06:00
Louis Dionne
61f73d4687
Add Range and List.
2014-05-16 07:56:09 -06:00
Louis Dionne
d732f5511b
Add hana::Integral.
2014-05-15 16:52:55 -06:00