Commit graph

65 commits

Author SHA1 Message Date
Simon Cruanes
1e2ac4c39b tests for bitvectors 2014-06-24 18:52:38 +02:00
Simon Cruanes
2b15a21570 refactored CCrandom (hide fuel, too complicated, but provide a fix operator);
bench_hash to compare hash combinators to the default hash function
2014-06-24 16:24:19 +02:00
Simon Cruanes
e5a842829e monadic combinators for lists and klists 2014-06-24 16:23:30 +02:00
Simon Cruanes
9da54f3e5a random generators in several modules, and CCRandom to bind them all with fuel 2014-06-24 14:06:48 +02:00
Simon Cruanes
6872591708 make a distinction between Hash.state and Hash.t (and private type is bad here) 2014-06-23 23:44:53 +02:00
Simon Cruanes
b56cdfa17a more hash functions 2014-06-23 23:40:10 +02:00
Simon Cruanes
1beab5268b changed comments, add _tags file 2014-06-23 23:29:47 +02:00
Simon Cruanes
fcd2085190 CCHash now uses murmur hash 2014-06-23 23:01:01 +02:00
Simon Cruanes
ef06d117cb api change in CClist: find is now find_idx, and find:('a->'b option) -> 'a list -> 'b option added 2014-06-20 14:28:41 +02:00
Simon Cruanes
ebb8310f84 bugfix 2014-06-15 23:10:16 +02:00
Simon Cruanes
d0393cd9b6 a few more functions in CCVector, including in-place filtering
and efficient non-order-preserving removal
2014-06-15 19:36:15 +02:00
Simon Cruanes
90239f2c3e CCArray.Sub.of_slice; bugfix in reverse_in_place 2014-06-15 19:35:47 +02:00
Simon Cruanes
4d2fa4ea4c small bugfix in CCArray.Sub: bound checking 2014-06-15 19:13:42 +02:00
Simon Cruanes
9a9954c420 Array.Sub: slice implementation 2014-06-15 18:58:32 +02:00
Simon Cruanes
e2bb0e93cb CCArray.find 2014-06-14 14:30:15 +02:00
Simon Cruanes
4c69e8216c CCError for functional error handling 2014-06-14 13:52:50 +02:00
Simon Cruanes
bb12ed932c much better error handling in CCLinq 2014-06-14 13:51:50 +02:00
Simon Cruanes
c021a2b310 map, set, and IO/string adapters for CCLinq;
also a lazy constructor
2014-06-14 12:09:07 +02:00
Simon Cruanes
4550a1c2c2 cleaner system to specify hash/eq/cmp for operations in CCLinq;
use Map to implement most binary operations, including join
2014-06-14 02:16:49 +02:00
Simon Cruanes
2492ee48a6 small change in CCOrd 2014-06-14 02:16:14 +02:00
Simon Cruanes
e3bde40598 more operators in CCKlist 2014-06-14 01:01:40 +02:00
Simon Cruanes
174957e604 more reasonable increase in size in CCVector 2014-06-14 01:01:22 +02:00
Simon Cruanes
4579213e63 some small additions 2014-06-14 00:23:09 +02:00
Simon Cruanes
65aceba85e phantom types for CCVector, for read-write and read-only vectors 2014-06-14 00:11:16 +02:00
Simon Cruanes
043003cf3b big refactoring of CCVector, to fit the recent coding style;
safe functions with _exn versions, iterators, printers, comparison
and other monadic operators
2014-06-13 23:51:34 +02:00
Simon Cruanes
e7dbdeff2e added zippers to CCList 2014-06-13 22:33:17 +02:00
Simon Cruanes
71bdc7667d gen interface in leftistheap 2014-06-13 21:57:47 +02:00
Simon Cruanes
89f4500fc2 updated CCLefistheap (more functions) 2014-06-13 21:51:38 +02:00
Simon Cruanes
d368931f70 CCOpt infix map 2014-06-13 17:56:32 +02:00
Simon Cruanes
933638244d more combinators for comparisons 2014-06-13 15:56:28 +02:00
Simon Cruanes
e9e861479c basic combinators for ordering (including lexico combination) 2014-06-13 15:08:27 +02:00
Simon Cruanes
86cd5c0e8d group_by now uses lists; a few more utils 2014-06-13 00:54:51 +02:00
Simon Cruanes
6ec499799c a few helpers + 1 example 2014-06-13 00:21:53 +02:00
Simon Cruanes
0d39bfdbf4 more optimizations, and a big chunk of query evaluation in CCLinq 2014-06-12 23:55:26 +02:00
Simon Cruanes
17930cf119 CCLinq: powerful interface for querying containers (work in progress) 2014-06-12 21:03:22 +02:00
Simon Cruanes
730f99de70 fix benchmark broken by Drup;
fix some small issues;
add CCBatch.extern combinator for arbitrary computations (that wont be optimized)
2014-06-12 11:56:57 +02:00
Simon Cruanes
8b2f5deb14 bugfix in CCArray 2014-06-12 11:56:13 +02:00
Drup
7f3a33a78d Change the representation of optimized list of operation and add folding. 2014-06-12 02:58:43 +02:00
Simon Cruanes
ee72934864 more operations on collections;
optimization level as a parameter in CCBatch
2014-06-11 23:27:21 +02:00
Simon Cruanes
80522a4959 expose the optimization to the user in CCBatch 2014-06-11 22:26:02 +02:00
Simon Cruanes
40f8955b34 updated CCBatch (more optimizations and type-safety,
enforcing some structural constraints with GADT)
2014-06-11 22:21:29 +02:00
Simon Cruanes
5567b12b79 CCBatch: batch operations on collections, with some fusion optimizations
to reduce the numbre of intermediate collections
2014-06-11 21:57:54 +02:00
Simon Cruanes
d7909200f6 operations on arrays (filter, filter_map, flat_map) 2014-06-11 21:54:20 +02:00
Simon Cruanes
bc40893166 CCList.filter 2014-06-11 21:54:01 +02:00
Simon Cruanes
9ca1f76bd7 more explicit type declaration 2014-06-09 18:10:53 +02:00
Simon Cruanes
945325054f more functions for CCOpt 2014-06-03 17:03:34 +02:00
Simon Cruanes
fd88f10216 safe version of fold_right 2014-05-31 12:36:15 +02:00
Simon Cruanes
9a10d477ee update the klist type in other modules 2014-05-26 22:01:21 +02:00
Simon Cruanes
ffcdfa8625 udpate the type of CCKlist 2014-05-26 21:26:45 +02:00
Simon Cruanes
488e97b439 CCInt.hash 2014-05-22 23:58:58 +02:00