frequencies
function, to count the number of occurences of each item in a listsubsequenceNonEmpty
function, to calculate each subsequence excluding the empty list.
stoppableFoldl
function andStep
type added. A stoppable fold has better performance in cases where a fold can be terminated part way through.
- Performance improvement to
remove
by making it tail call optimized. - Performance improvement to
updateAt
by only computing list head when necessary. groupsOf
andgreedyGroupsOf
are now tail call optimized, making them stack safe, but unfortunately slightly slower (small lists and groups ~20% slower).- Performance improvement to
isPermutationOf
by making helper functions top level, not currying functions, and putting most commoncase
branches first.
- New
isPermutationOf
implemntation in 8.5.0 did not always give the correct output. In 8.5.1 a new implementation that is both performance and correct is used.
unique
anduniqueBy
functions no longer requires comparable input arguments. This change increased performance for lists sized 0-100 elements by about 40% but decreases performance for lists sized >200 by about 35%. Seems like a worthy trade off.isPermutationOf
is vastly more performant. @lue-bird 's benchmarks show cases of being 141,000% more performant.- New
reverseRange
, a more performant combination ofreverse
andrange
.
- New function
joinOn
isInfixOf
is tail call optimized
gatherWith
is tail call optimized
- New function
findMap
- Speed up removeAt implementation
- Make iterate tail recursive
- Fixed bug in
isInfixOf
that prevented the detection of infixes after a partial infix (Issue #132)
Notes
groupWhile
implementation rewritten to be tail-recursive to eliminate risk of stack overflow errors. Trade off is its about 12% slower.
Additions
pairings
Notes
- Documentation cleaned up, and Elm verify examples implemented
Additions
gatherEquals
,gatherEqualsBy
, andgatherWith
maximumWith
andminimumWith
Notes
- First Elm 0.19 release
Breaking Changes
replaceIf
was renamed tosetIf
unzip4
andunzip5
were removed- The
(!!)
operator was removed, as Elm 0.19 no longer permits custom infix operators - Really Breaky: The type signature of
foldl1
did not change, but the arguments did.foldl1
takes aa -> a -> a
as a parameter. However, before version 8.0.0 it had the shapeb -> a -> b
and now it isa -> b -> b
.