mirror of
https://github.com/c-cube/iter.git
synced 2025-12-05 19:00:31 -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
|
||||
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
|
||||
Name: sequence
|
||||
Version: 0.4.1
|
||||
Version: 0.5
|
||||
Homepage: https://github.com/c-cube/sequence
|
||||
Authors: Simon Cruanes
|
||||
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
|
||||
(** Is the value a member of the sequence?
|
||||
@param eq the equality predicate to use (default [(=)])
|
||||
@since NEXT_VERSION *)
|
||||
@since 0.5 *)
|
||||
|
||||
val find : ('a -> 'b option) -> 'a t -> 'b option
|
||||
(** Find the first element on which the function doesn't return [None]
|
||||
@since NEXT_VERSION *)
|
||||
@since 0.5 *)
|
||||
|
||||
val length : 'a t -> int
|
||||
(** 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
|
||||
(** Alias to {!flatMap} with a more explicit name
|
||||
@since NEXT_VERSION *)
|
||||
@since 0.5 *)
|
||||
|
||||
val fmap : ('a -> 'b option) -> 'a t -> 'b t
|
||||
(** Specialized version of {!flatMap} for options. *)
|
||||
|
||||
val filter_map : ('a -> 'b option) -> 'a t -> 'b t
|
||||
(** Alias to {!fmap} with a more explicit name
|
||||
@since NEXT_VERSION *)
|
||||
@since 0.5 *)
|
||||
|
||||
val intersperse : 'a -> 'a t -> 'a t
|
||||
(** 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
|
||||
(** 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
|
||||
(** [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
|
||||
(** Concatenate strings together, eagerly.
|
||||
Also see {!intersperse} to add a separator.
|
||||
@since NEXT_VERSION *)
|
||||
@since 0.5 *)
|
||||
|
||||
exception OneShotSequence
|
||||
(** Raised when the user tries to iterate several times on
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue