Algosim documentation: group

group

Partitions the elements of a list into same-size groups.

Syntax

Description

If L is list and n divides #L, then group(L, n) returns a list of length #L / n in which each element is a list of length n containing elements of L in such a way that all elements of L are found in their original order when the result is read in row-major order.

If n does not divide #L, then group(L, n) returns a list of length ⌈#L / n⌉ as above with the additional elements of the last list being null objects.

Examples

s ≔ "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
w ≔ words(s) \ 10
Lorem
ipsum
dolor
sit
amet
consectetur
adipiscing
elit
sed
do
⋮
group(w, 3) \ 10
(Lorem, ipsum, dolor)
(sit, amet, consectetur)
(adipiscing, elit, sed)
(do, eiusmod, tempor)
(incididunt, ut, labore)
(et, dolore, magna)
(aliqua, Ut, enim)
(ad, minim, veniam)
(quis, nostrud, exercitation)
(ullamco, laboris, nisi)
⋮
matrix(group(SequenceList(100), 10))
⎛  1    2    3    4    5    6    7    8    9   10⎞
⎜ 11   12   13   14   15   16   17   18   19   20⎟
⎜ 21   22   23   24   25   26   27   28   29   30⎟
⎜ 31   32   33   34   35   36   37   38   39   40⎟
⎜ 41   42   43   44   45   46   47   48   49   50⎟
⎜ 51   52   53   54   55   56   57   58   59   60⎟
⎜ 61   62   63   64   65   66   67   68   69   70⎟
⎜ 71   72   73   74   75   76   77   78   79   80⎟
⎜ 81   82   83   84   85   86   87   88   89   90⎟
⎝ 91   92   93   94   95   96   97   98   99  100⎠

See also