Commit graph

81 commits

Author SHA1 Message Date
Simon Cruanes
a5a1315f79 implement Set.Adapt.of_list for < 4.02 2014-12-01 16:03:37 +01:00
Simon Cruanes
cdae072e5e removed many warnings 2014-11-08 01:36:20 +01:00
Simon Cruanes
0226a4cef5 more warnings enabled; fix tests 2014-11-04 22:28:39 +01:00
Simon Cruanes
22705b24f0 change name of IO functions (keep compat) 2014-11-04 22:10:11 +01:00
Simon Cruanes
0de04d0eb8 depend on bytes; compliant with -safe-string 2014-11-04 21:45:23 +01:00
Simon Cruanes
9fc9a311e4 bugfix: using the same ExitSequence exception in take and is_empty cannot work 2014-10-19 20:51:04 +02:00
Simon Cruanes
81d7315000 bugfix: take would fail on 0 2014-08-08 23:47:51 +02:00
Drup
ae390d34f4 Add on_list. 2014-08-08 20:37:54 +02:00
Simon Cruanes
3458581ff2 Sequence.IO module, a very very simple way to read/write files 2014-08-07 12:06:59 +02:00
Simon Cruanes
c79fa08b52 options: to_opt/of_opt/head/head_exn 2014-07-17 18:06:51 +02:00
Simon Cruanes
fea71526b0 of_list/to_list in Map/Set adapters 2014-07-07 18:14:16 +02:00
Simon Cruanes
4475d52b0f code cleaning;
exception raised in of_in_channel upon second iteration
2014-07-07 18:14:16 +02:00
Simon Cruanes
77d74953fd sequence.concat_str 2014-07-07 18:14:16 +02:00
Simon Cruanes
e0a95a3c31 cons, snoc, take_while, drop_while, doubleton 2014-07-07 17:12:49 +02:00
Simon Cruanes
75c87b0507 conversion with klist 2014-07-07 14:44:40 +02:00
Simon Cruanes
abe4ba2aaf applicative and choice infix operators 2014-07-07 14:25:37 +02:00
Simon Cruanes
ed5a602f4e add monadic operators and >|= 2014-07-07 13:57:20 +02:00
Simon Cruanes
a40866e9ec add several functions: product2, find, mem;
fix doc error on product
2014-07-01 16:00:09 +02:00
Simon Cruanes
54025273dd remove trailing whitespace 2014-07-01 15:54:15 +02:00
Simon Cruanes
632a820b1d aliases to existing functions 2014-07-01 15:54:00 +02:00
Simon Cruanes
3d61de614e apparently drup doesn't like polymorphic variants 2014-05-19 14:58:11 +02:00
Simon Cruanes
6ff605ac04 Sequence.persistent_lazy added, for caching without upfront cost 2014-05-19 14:51:12 +02:00
Simon Cruanes
281032c61f conversion with Gen 2014-04-16 17:57:11 +02:00
Simon Cruanes
93b6a18c41 cleanup of Infix (removed some operators);
remove TypeClass
2014-04-16 17:56:54 +02:00
Simon Cruanes
2d380a48ca change the interface of min/max so that they return an option
in case the sequence is empty
2014-04-16 17:39:32 +02:00
Simon Cruanes
a5385ce649 API change for Sequence.persistent: no need to
provide a block size, the unrolled list manages it (doubling block size);
new implementation for persistent is more efficient.
2014-02-27 11:51:57 +01:00
Simon Cruanes
a3ff8ee854 added a benchmark for persistent; moved all benchs to bench/ 2014-02-27 11:06:07 +01:00
Simon Cruanes
b1e5176177 printing functions 2013-11-18 15:17:22 +01:00
Simon Cruanes
61a4f64e75 decreasing int range operator 2013-11-18 15:10:07 +01:00
Simon Cruanes
85b063737f allow to specify the blocksize in persistent 2013-10-20 22:02:19 +02:00
Simon Cruanes
0e16d544d5 replace array functions by loops 2013-10-20 21:17:09 +02:00
Simon Cruanes
049fe898ce bugfix in Sequence.take 2013-10-03 21:54:51 +02:00
Simon Cruanes
12c0c5a6f5 fmap function 2013-08-28 15:01:09 +02:00
Simon Cruanes
4f06874e39 more natural functors to adapt Set and Map 2013-08-28 14:57:28 +02:00
Simon Cruanes
fa18a7ba83 better pp_seq 2013-05-26 22:35:54 +02:00
Simon Cruanes
b946b7157b optimized MList, with twice as fast insertion (on big tests);
see ./simple_bench.native 10_000_000. The optimization is based on increasing block size.
2013-03-11 00:54:28 +01:00
Simon Cruanes
0115102c2a revert implementation of MList (new one is slower) 2013-03-10 19:02:30 +01:00
Simon Cruanes
b0428e3f05 re-implementation of the internal MList storage, with a kind
of 2-3 B-tree
2013-03-10 16:48:48 +01:00
Simon Cruanes
bd472ba2e0 small error in comment 2013-03-10 15:41:21 +01:00
Simon Cruanes
7eb4fb370b Sequence.join combinator 2013-03-10 15:36:26 +01:00
Simon Cruanes
91a167a885 small API updates; Sequence.intersperse has a signature that is consistent
with the rest of the API, and combines well with |>
2013-03-10 15:26:50 +01:00
Simon Cruanes
e23e1f8da1 added alias 'flatten' for 'concat' 2013-03-08 18:09:22 +01:00
Simon Cruanes
9b6acc00ae a bugfix in Sequence.product;
changed default block size of MList
2013-03-08 16:05:34 +01:00
Simon Cruanes
2aef4afa6a sort, uniq, group and sort_uniq combinators implemented 2013-03-08 15:11:26 +01:00
Simon Cruanes
43f4f25ed7 some conversion functions that use Sequence.t2 2013-03-07 19:52:04 +01:00
Simon Cruanes
ba3564c2bb infix operators in Sequence.Infix 2013-03-07 19:48:22 +01:00
Simon Cruanes
b109e99c00 Sequence.t2 type for efficient iteration on pairs of elements;
some combinators are adapted to Sequence.t2;
zip, unzip and zip_i to convert between t and t2
2013-03-07 19:42:10 +01:00
Simon Cruanes
b308a8ae87 added scan combinator 2013-03-07 19:30:57 +01:00
Simon Cruanes
836049b6f1 Sequence.to_stream implemented (O(n) memory and time) 2013-03-01 15:56:35 +01:00
Simon Cruanes
942023cdd7 bugfix in Sequence.MList.iter_rev 2013-02-27 21:10:09 +01:00