157 lines
2.4 KiB
Text
157 lines
2.4 KiB
Text
APPENDCOLS
|
|
=LAMBDA(xs,
|
|
LAMBDA(ys,
|
|
LET(
|
|
nx, COLUMNS(xs),
|
|
ny, COLUMNS(ys),
|
|
colIndexes, SEQUENCE(1, nx + ny),
|
|
rowIndexes, SEQUENCE(MAX(ROWS(xs), ROWS(ys))),
|
|
|
|
IFERROR(
|
|
IF(nx < colIndexes,
|
|
INDEX(ys, rowIndexes, colIndexes - nx),
|
|
INDEX(xs, rowIndexes, colIndexes)
|
|
),
|
|
NA()
|
|
)
|
|
)
|
|
)
|
|
)
|
|
|
|
|
|
APPENDROWS
|
|
=LAMBDA(xs,
|
|
LAMBDA(ys,
|
|
LET(
|
|
nx, ROWS(xs),
|
|
rowIndexes, SEQUENCE(nx + ROWS(ys)),
|
|
colIndexes, SEQUENCE(
|
|
1,
|
|
MAX(COLUMNS(xs), COLUMNS(ys))
|
|
),
|
|
|
|
IFERROR(
|
|
IF(rowIndexes <= nx,
|
|
INDEX(xs, rowIndexes, colIndexes),
|
|
INDEX(ys, rowIndexes - nx, colIndexes)
|
|
),
|
|
NA()
|
|
)
|
|
)
|
|
)
|
|
)
|
|
|
|
|
|
APPLYN
|
|
=LAMBDA(n,
|
|
LAMBDA(f,
|
|
LAMBDA(x,
|
|
IF(0 < n,
|
|
APPLYN(n - 1)(f)(
|
|
f(x)
|
|
),
|
|
x
|
|
)
|
|
)
|
|
)
|
|
)
|
|
|
|
|
|
DROPCOLS
|
|
=LAMBDA(n,
|
|
LAMBDA(xs,
|
|
INDEX(
|
|
xs,
|
|
SEQUENCE(ROWS(xs), 1),
|
|
SEQUENCE(1, (COLUMNS(xs) - n), 1 + n, 1)
|
|
)
|
|
)
|
|
)
|
|
|
|
|
|
FILTERP
|
|
=LAMBDA(p,
|
|
LAMBDA(xs,
|
|
FILTER(xs, p(xs))
|
|
)
|
|
)
|
|
|
|
|
|
HEADCOL
|
|
=LAMBDA(xs,
|
|
LET(REM, "The first item of each column in xs",
|
|
|
|
INDEX(xs, 1, SEQUENCE(1, COLUMNS(xs)))
|
|
)
|
|
)
|
|
|
|
|
|
INITROW
|
|
=LAMBDA(xs,
|
|
INDEX(
|
|
xs,
|
|
SEQUENCE(
|
|
1,
|
|
COLUMNS(xs) - 1,
|
|
1, 1
|
|
)
|
|
)
|
|
)
|
|
|
|
|
|
LASTROW
|
|
=LAMBDA(xs,
|
|
INDEX(
|
|
xs,
|
|
ROWS(xs),
|
|
SEQUENCE(1, COLUMNS(xs), 1, 1)
|
|
)
|
|
)
|
|
|
|
|
|
SUBTRACT
|
|
=LAMBDA(a,
|
|
LAMBDA(b, a - b)
|
|
)
|
|
|
|
|
|
TAILCOL
|
|
=LAMBDA(cols,
|
|
LET(REM, "The tail of each column in the grid.",
|
|
|
|
INDEX(
|
|
cols,
|
|
SEQUENCE(ROWS(cols) - 1, 1, 2, 1),
|
|
SEQUENCE(1, COLUMNS(cols))
|
|
)
|
|
)
|
|
)
|
|
|
|
|
|
TAILROW
|
|
=LAMBDA(xs,
|
|
LET(REM,"The tail of each row in the grid",
|
|
n, COLUMNS(xs) - 1,
|
|
|
|
IF(0 < n,
|
|
INDEX(
|
|
xs,
|
|
SEQUENCE(ROWS(xs), 1, 1, 1),
|
|
SEQUENCE(1, n, 2, 1)
|
|
),
|
|
NA()
|
|
)
|
|
)
|
|
)
|
|
|
|
|
|
TAKECOLS
|
|
=LAMBDA(n,
|
|
LAMBDA(xs,
|
|
INDEX(
|
|
xs,
|
|
SEQUENCE(ROWS(xs)),
|
|
SEQUENCE(1, n)
|
|
)
|
|
)
|
|
)
|