From 0a93877d4be683159f61c050283ef8d37ad21876 Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Mon, 2 Jun 2014 08:40:38 -0700 Subject: [PATCH] sequences: make sum-lengths generic. --- core/sequences/sequences.factor | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/core/sequences/sequences.factor b/core/sequences/sequences.factor index 3c5c8f992b..f27444df3f 100644 --- a/core/sequences/sequences.factor +++ b/core/sequences/sequences.factor @@ -819,9 +819,14 @@ PRIVATE> [ 0 swap copy-unsafe ] keep reverse! ] keep like ; -: sum-lengths ( seq -- n ) +GENERIC: sum-lengths ( seq -- n ) + +M: object sum-lengths 0 [ length + ] reduce ; +M: repetition sum-lengths + [ len>> ] [ elt>> length ] bi * ; + : concat-as ( seq exemplar -- newseq ) swap [ { } ] [ [ sum-lengths over new-resizable ] keep