mirror of
https://github.com/c-cube/iter.git
synced 2025-12-06 03:05:29 -05:00
version 0.5
This commit is contained in:
parent
fea71526b0
commit
d5b9674124
5 changed files with 79 additions and 55 deletions
47
CHANGELOG
47
CHANGELOG
|
|
@ -1,47 +0,0 @@
|
||||||
# Changelog
|
|
||||||
|
|
||||||
## 0.4.1
|
|
||||||
|
|
||||||
- persistent_lazy
|
|
||||||
- use bin_annot
|
|
||||||
|
|
||||||
## 0.4
|
|
||||||
|
|
||||||
- API change for persistent
|
|
||||||
- more efficient implementation for persistent
|
|
||||||
- remove TypeClass
|
|
||||||
- API change for min/max (in case the sequence is empty)
|
|
||||||
- conversion with Gen
|
|
||||||
- use Oasis
|
|
||||||
|
|
||||||
## 0.3.7
|
|
||||||
|
|
||||||
- decreasing int range
|
|
||||||
- printing functions
|
|
||||||
|
|
||||||
## 0.3.6.1
|
|
||||||
|
|
||||||
- documentation
|
|
||||||
- bugfixes
|
|
||||||
|
|
||||||
## 0.3.6
|
|
||||||
|
|
||||||
- fmap
|
|
||||||
- functors to adapt Set and Map
|
|
||||||
|
|
||||||
## 0.3.5
|
|
||||||
|
|
||||||
- tests and benchmarks
|
|
||||||
- join combinator
|
|
||||||
- optimization for Sequence.persistent
|
|
||||||
|
|
||||||
## 0.3.4
|
|
||||||
|
|
||||||
- sort, uniq, group and sort_uniq combinators implemented
|
|
||||||
- some conversion functions that use Sequence.t2
|
|
||||||
- infix operators in Sequence.Infix
|
|
||||||
- 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
|
|
||||||
- added scan combinator
|
|
||||||
|
|
||||||
65
CHANGELOG.md
Normal file
65
CHANGELOG.md
Normal file
|
|
@ -0,0 +1,65 @@
|
||||||
|
# Changelog
|
||||||
|
|
||||||
|
## 0.5
|
||||||
|
|
||||||
|
- conversion with `klist`
|
||||||
|
- add monadic, choice and applicative infix operators and `>|=`
|
||||||
|
- add several functions:
|
||||||
|
* `product2`
|
||||||
|
* `find`, `mem`
|
||||||
|
* `doubleton`, `cons`, `snoc`
|
||||||
|
* `drop_while`, `take_while`...
|
||||||
|
* `concat_str`
|
||||||
|
- aliases to existing functions
|
||||||
|
- use `delimcc` in a new module, `SequenceInvert`, in order to reverse the
|
||||||
|
control flow (here with conversion to Gen)
|
||||||
|
- fix examples, tests and doc (about `product`)
|
||||||
|
- reading benchmark for persistent sequences.
|
||||||
|
- replace `Bench` with `Benchmark`
|
||||||
|
|
||||||
|
## 0.4.1
|
||||||
|
|
||||||
|
- `persistent_lazy`
|
||||||
|
- use bin_annot
|
||||||
|
|
||||||
|
## 0.4
|
||||||
|
|
||||||
|
- API change for `persistent`
|
||||||
|
- more efficient implementation for `persistent`
|
||||||
|
- remove `TypeClass`
|
||||||
|
- API change for `min`/`max` (in case the sequence is empty)
|
||||||
|
- conversion with `Gen`
|
||||||
|
- use Oasis
|
||||||
|
|
||||||
|
## 0.3.7
|
||||||
|
|
||||||
|
- decreasing int range
|
||||||
|
- printing functions
|
||||||
|
|
||||||
|
## 0.3.6.1
|
||||||
|
|
||||||
|
- documentation
|
||||||
|
- bugfixes
|
||||||
|
|
||||||
|
## 0.3.6
|
||||||
|
|
||||||
|
- `fmap`
|
||||||
|
- functors to adapt `Set` and `Map`
|
||||||
|
|
||||||
|
## 0.3.5
|
||||||
|
|
||||||
|
- tests and benchmarks
|
||||||
|
- `join` combinator
|
||||||
|
- optimization for `Sequence.persistent`
|
||||||
|
|
||||||
|
## 0.3.4
|
||||||
|
|
||||||
|
- `sort`, `uniq`, `group` and `sort_uniq` combinators implemented
|
||||||
|
- some conversion functions that use `Sequence.t2`
|
||||||
|
- infix operators in `Sequence.Infix`
|
||||||
|
- `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`
|
||||||
|
- added `scan` combinator
|
||||||
|
|
||||||
|
note: git log --no-merges previous_version..HEAD --pretty=%s
|
||||||
8
Makefile
8
Makefile
|
|
@ -49,4 +49,10 @@ examples:
|
||||||
push_doc: all doc
|
push_doc: all doc
|
||||||
scp -r sequence.docdir/* cedeela.fr:~/simon/root/software/sequence/
|
scp -r sequence.docdir/* cedeela.fr:~/simon/root/software/sequence/
|
||||||
|
|
||||||
.PHONY: benchs tests examples
|
VERSION=$(shell awk '/Version:/ {print $$2}' _oasis)
|
||||||
|
|
||||||
|
update_next_tag:
|
||||||
|
@echo "update version to $(VERSION)..."
|
||||||
|
sed -i "s/NEXT_VERSION/$(VERSION)/g" *.ml *.mli
|
||||||
|
|
||||||
|
.PHONY: benchs tests examples update_next_tag push_doc
|
||||||
|
|
|
||||||
2
_oasis
2
_oasis
|
|
@ -1,6 +1,6 @@
|
||||||
OASISFormat: 0.4
|
OASISFormat: 0.4
|
||||||
Name: sequence
|
Name: sequence
|
||||||
Version: 0.4.1
|
Version: 0.5
|
||||||
Homepage: https://github.com/c-cube/sequence
|
Homepage: https://github.com/c-cube/sequence
|
||||||
Authors: Simon Cruanes
|
Authors: Simon Cruanes
|
||||||
License: BSD-2-clause
|
License: BSD-2-clause
|
||||||
|
|
|
||||||
12
sequence.mli
12
sequence.mli
|
|
@ -139,11 +139,11 @@ val exists : ('a -> bool) -> 'a t -> bool
|
||||||
val mem : ?eq:('a -> 'a -> bool) -> 'a -> 'a t -> bool
|
val mem : ?eq:('a -> 'a -> bool) -> 'a -> 'a t -> bool
|
||||||
(** Is the value a member of the sequence?
|
(** Is the value a member of the sequence?
|
||||||
@param eq the equality predicate to use (default [(=)])
|
@param eq the equality predicate to use (default [(=)])
|
||||||
@since NEXT_VERSION *)
|
@since 0.5 *)
|
||||||
|
|
||||||
val find : ('a -> 'b option) -> 'a t -> 'b option
|
val find : ('a -> 'b option) -> 'a t -> 'b option
|
||||||
(** Find the first element on which the function doesn't return [None]
|
(** Find the first element on which the function doesn't return [None]
|
||||||
@since NEXT_VERSION *)
|
@since 0.5 *)
|
||||||
|
|
||||||
val length : 'a t -> int
|
val length : 'a t -> int
|
||||||
(** How long is the sequence? Forces the sequence. *)
|
(** How long is the sequence? Forces the sequence. *)
|
||||||
|
|
@ -172,14 +172,14 @@ val flatMap : ('a -> 'b t) -> 'a t -> 'b t
|
||||||
|
|
||||||
val flat_map : ('a -> 'b t) -> 'a t -> 'b t
|
val flat_map : ('a -> 'b t) -> 'a t -> 'b t
|
||||||
(** Alias to {!flatMap} with a more explicit name
|
(** Alias to {!flatMap} with a more explicit name
|
||||||
@since NEXT_VERSION *)
|
@since 0.5 *)
|
||||||
|
|
||||||
val fmap : ('a -> 'b option) -> 'a t -> 'b t
|
val fmap : ('a -> 'b option) -> 'a t -> 'b t
|
||||||
(** Specialized version of {!flatMap} for options. *)
|
(** Specialized version of {!flatMap} for options. *)
|
||||||
|
|
||||||
val filter_map : ('a -> 'b option) -> 'a t -> 'b t
|
val filter_map : ('a -> 'b option) -> 'a t -> 'b t
|
||||||
(** Alias to {!fmap} with a more explicit name
|
(** Alias to {!fmap} with a more explicit name
|
||||||
@since NEXT_VERSION *)
|
@since 0.5 *)
|
||||||
|
|
||||||
val intersperse : 'a -> 'a t -> 'a t
|
val intersperse : 'a -> 'a t -> 'a t
|
||||||
(** Insert the single element between every element of the sequence *)
|
(** Insert the single element between every element of the sequence *)
|
||||||
|
|
@ -228,7 +228,7 @@ val product : 'a t -> 'b t -> ('a * 'b) t
|
||||||
|
|
||||||
val product2 : 'a t -> 'b t -> ('a, 'b) t2
|
val product2 : 'a t -> 'b t -> ('a, 'b) t2
|
||||||
(** Binary version of {!product}. Same requirements.
|
(** Binary version of {!product}. Same requirements.
|
||||||
@since NEXT_VERSION *)
|
@since 0.5 *)
|
||||||
|
|
||||||
val join : join_row:('a -> 'b -> 'c option) -> 'a t -> 'b t -> 'c t
|
val join : join_row:('a -> 'b -> 'c option) -> 'a t -> 'b t -> 'c t
|
||||||
(** [join ~join_row a b] combines every element of [a] with every
|
(** [join ~join_row a b] combines every element of [a] with every
|
||||||
|
|
@ -369,7 +369,7 @@ val to_str : char t -> string
|
||||||
val concat_str : string t -> string
|
val concat_str : string t -> string
|
||||||
(** Concatenate strings together, eagerly.
|
(** Concatenate strings together, eagerly.
|
||||||
Also see {!intersperse} to add a separator.
|
Also see {!intersperse} to add a separator.
|
||||||
@since NEXT_VERSION *)
|
@since 0.5 *)
|
||||||
|
|
||||||
exception OneShotSequence
|
exception OneShotSequence
|
||||||
(** Raised when the user tries to iterate several times on
|
(** Raised when the user tries to iterate several times on
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue