It can be helpful to write up a spec of exactly what you want for types of input.

Presumably:

f.value(number) â€“ youâ€™d like an array consisting of each 1â€¦16 element times the number.

f.value(array) â€“ an array of arrays, consisting of each array element times 1â€¦16â€¦ that is, the two arrays would be multiplied into a table â€“ 1â€¦16 across the top, the input array down the side.

This isnâ€™t convenient to search in the help, but in fact SC does support table-style math ops on arrays.

Go back and take another look at my post: â€ś1â€¦16 across the top, the input array down the side.â€ť

Now look at the expression: f = { |x| x *.t (1..16) }; â€“ so the â€śacross the topâ€ť (rows) is the second operand, and â€śdown the sideâ€ť (columns) is the first operand.

What youâ€™re saying here is that you want 1â€¦16 down the side (columns), and the input array across the top (rows).

And we know that the expression is written in terms of columns *.t rows.

Nowâ€¦ given that, do you think you can adapt the *.t expression on your own?