Commit graph

85 commits

Author SHA1 Message Date
Simon Cruanes
dcd5b2fa44 fix typo in readme 2013-05-27 15:00:46 +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
f1c101310c update header of sequence.mli to explain some assumptions about sequences. 2013-03-10 15:17:27 +01:00
Simon Cruanes
e23e1f8da1 added alias 'flatten' for 'concat' 2013-03-08 18:09:22 +01:00
Simon Cruanes
9829fc01bc some basic benchmarks 2013-03-08 17:25:06 +01:00
Simon Cruanes
cb113e5174 a few more tests 2013-03-08 16:59:02 +01:00
Simon Cruanes
2790ea06ed some tests for Sequence 2013-03-08 16:47:29 +01:00
Simon Cruanes
ec8a865500 basic building blocks for testing 2013-03-08 16:18:52 +01:00
Simon Cruanes
6443648f56 moved example stuff in examples/ 2013-03-08 16:18:30 +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
0dd50ca9a7 version 0.3.4 2013-03-08 15:31:48 +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
b2c3de33a5 gitignore 2013-03-07 19:14:16 +01:00
Simon Cruanes
c6c9c7d344 remove useless opam/ dir 2013-03-07 19:13:55 +01:00
Simon Cruanes
836049b6f1 Sequence.to_stream implemented (O(n) memory and time) 2013-03-01 15:56:35 +01:00
Simon Cruanes
d7ce7eb30e .merlin config file 2013-03-01 15:56:11 +01:00
Simon Cruanes
8f9722b139 updated readme 2013-02-27 22:02:33 +01:00
Simon Cruanes
907c3be9cc added a benchmark file to compare with ExtLib.Enum.t (not compiled by default,
to avoid depending on extlib)
2013-02-27 21:19:14 +01:00
Simon Cruanes
942023cdd7 bugfix in Sequence.MList.iter_rev 2013-02-27 21:10:09 +01:00
Simon Cruanes
2ba0cfe2f4 added some typeclasses in a submodule 2013-02-27 17:52:29 +01:00
Simon Cruanes
213def7aab no need to reverse the MList to reverse a sequence 2013-02-25 10:35:14 +01:00
Simon Cruanes
df7ef45ad5 added Sequence.persistent function (copy sequence in memory);
implementation is done by unrolled linked list (also used for Sequence.rev and Sequence.to_array);
should be quite efficient in time and memory
2013-02-25 02:18:40 +01:00
Simon Cruanes
d64691f1b3 creation of the empty sequence 2013-02-18 17:23:56 +01:00
Simon Cruanes
099b0bbb8d some combinators (inspired by Data.List in Haskell):
intersperse, product, unfoldr, max and min
2013-02-18 17:20:15 +01:00
Simon Cruanes
8c44f7c63e added flatMap to the combinators 2013-02-18 17:04:24 +01:00
Simon Cruanes
55ff51f2cb more combinators (iterate and forever);
some sequences of random elements
2013-02-15 17:35:05 +01:00
Simon Cruanes
45e331861d more Sequence constructors and consumers 2013-02-15 17:20:33 +01:00
Simon Cruanes
d0c858ab9d update of README;
in Makefile, only build tests if required, because it requires ocaml4
2013-02-11 11:52:54 +01:00
Simon Cruanes
cc241eeb33 do not install the toy Sexpr module 2013-02-10 19:53:39 +01:00
Simon Cruanes
f825f71dc6 test Sexpr parsing and printing, with
an example type (a kind of lambda terms)
2013-02-08 23:21:48 +01:00
Simon Cruanes
2ff632af11 more combinators in Sexpr;
bugfix in parsing, Return parsers must be poped off the stack as soon as possible;

^|| combinator for choosing parsers depending on a string
2013-02-08 23:20:42 +01:00
Simon Cruanes
6322884f2f ability to parse a sequence of values from a Sexpr 2013-02-08 20:41:52 +01:00
Simon Cruanes
cce20838c4 parser combinators for deserializing token sequences directly into
any type, without building the intermediate Sexpr.t. GADT are now necessary, to keep the
Sexpr.parse function type-safe
2013-02-08 20:26:06 +01:00
Simon Cruanes
af0c94dab4 functorial interface for Set too 2013-02-07 16:16:23 +01:00
Simon Cruanes
07cc9df645 offer two different functions for combining Map and Seq. Both build
an extended version of Map, with additional conversion functions relative to Sequence.
One can Adapt an already existing Map module, or Make an extended Map directly
2013-02-07 16:07:16 +01:00
Simon Cruanes
d706038ed5 use a hidden exception for interrupting computation, so that
user-defined functions/callbacks can use Exit without interfering
2013-02-06 18:15:24 +01:00
Simon Cruanes
301205fafd junk signature removed 2013-02-06 14:54:15 +01:00
Simon Cruanes
f0c3d399bc update tests 2013-02-06 14:53:47 +01:00
Simon Cruanes
2bf5b628ab removed type-conversion submodules, now replaced by simple values.
For instance, Sequence.List.of_seq is now Sequence.to_list.
Conversion with Set now uses first-class modules to avoir functor hell
(not done on Map because of limitations in the type systems)
2013-02-06 14:53:33 +01:00
Simon Cruanes
438159aa90 length and is_empty functions for Sequence 2013-02-05 16:40:31 +01:00