diff --git a/basis/grouping/grouping-docs.factor b/basis/grouping/grouping-docs.factor index 64f277ee94..6a02e2198e 100644 --- a/basis/grouping/grouping-docs.factor +++ b/basis/grouping/grouping-docs.factor @@ -117,7 +117,7 @@ $nl HELP: clump { $values { "seq" "a sequence" } { "n" "a non-negative integer" } { "array" "a sequence of sequences" } } { $description "Splits the sequence into overlapping clumps of " { $snippet "n" } " elements and collects the clumps into a new array." } -{ $notes "For an empty sequence, the result is an empty sequence. For a non empty sequence with a length smaller than " { $snippet "n" } ", the result will be a sequence with one element: the input sequence " { $snippet "seq" } "." } +{ $notes "For an empty sequence, the result is an empty sequence. For a non empty sequence with a length smaller than " { $snippet "n" } ", the result will be an empty sequence." } { $examples { $example "USING: grouping prettyprint ;" "{ 3 1 3 3 7 } 2 clump ." "{ { 3 1 } { 1 3 } { 3 3 } { 3 7 } }" } } ; diff --git a/basis/grouping/grouping-tests.factor b/basis/grouping/grouping-tests.factor index 605b2b76ce..6e207ceffa 100644 --- a/basis/grouping/grouping-tests.factor +++ b/basis/grouping/grouping-tests.factor @@ -13,11 +13,11 @@ IN: grouping.tests ] unit-test [ 0 ] [ { } 2 length ] unit-test -[ 1 ] [ { 1 } 2 length ] unit-test +[ 0 ] [ { 1 } 2 length ] unit-test [ 1 ] [ { 1 2 } 2 length ] unit-test [ 2 ] [ { 1 2 3 } 2 length ] unit-test -{ { { 1 } } } [ { 1 } 2 clump ] unit-test +{ { } } [ { 1 } 2 clump ] unit-test { { { 1 2 } } } [ { 1 2 } 2 clump ] unit-test { { { 1 2 } { 2 3 } } } [ { 1 2 3 } 2 clump ] unit-test diff --git a/basis/grouping/grouping.factor b/basis/grouping/grouping.factor index c7733b871d..99cefa3cf0 100644 --- a/basis/grouping/grouping.factor +++ b/basis/grouping/grouping.factor @@ -45,14 +45,14 @@ INSTANCE: abstract-clumps sequence M: abstract-clumps length dup seq>> length [ drop 0 ] [ - swap [ 1 + ] [ n>> ] bi* - 1 max + swap [ 1 + ] [ n>> ] bi* [-] ] if-zero ; inline M: abstract-clumps set-length [ n>> + 1 - ] [ seq>> ] bi set-length ; inline M: abstract-clumps group@ - [ [ n>> over + ] [ seq>> length ] bi min ] [ seq>> ] bi ; inline + [ n>> over + ] [ seq>> ] bi ; inline TUPLE: chunking-seq { seq read-only } { n read-only } ;