Maps a function on all elements of a matrix. Modifies the matrix
in-place.

The function name must be a program that operates only on the X
register. XEQ IND doesn't appear to work with names of built-in
functions, but most built-in functions can operate directly on the
matrix with similar results.

Because the matrix is modified in-place, if an error occurs at any
point the matrix may be partially modified. It might be good to save a
copy of the original matrix.

This version is somewhat improved over a previous one by using DSE
instead of ISG to loop and by using -> instead of I+ to move the
matrix index.

Inputs:
M: matrix to map over
F: name of program to map

Outputs:
M: updated matrix

Registers:
00: loop index


00 { 47-Byte Prgm }
01 LBL "MAP"
02 MVAR "M"
03 MVAR "F"
04 VARMENU "MAP"
05 STOP
06 RCL "M"
07 INDEX "M"
08 DIM?
09 +
10 1
11 +
12 STO 00
13 LBL 00
14 RCLEL
15 XEQ IND "F"
16 STOEL
17 ->
18 DSE 00
19 GTO 00
20 CLST
21 END