I would like to propose the idea that matrix operations should be possible inside a datastep.
Forexample, two-dimensional arrays can be seen as matrices and multiplied together. I am aware that IML can do most matrix operations, but sometimes IML is cumbersome because data has to be read from datasets into read into matrices, and then maybe back afterwards.
It is already almost possible: In FCMP the matrix functions are defined, but they can only be called inside proc FCMP but not from a datastep. Therefore, when one has defines some new functions, which do nothing else than work as a "link" between the datastep and the matrixfunctions in fcmp the functions can also be called from a datastep. Somehow, I find it strange that the users has to make the functions available, and what I suggest is that the functions should work automatically.
In the attached file there are function-declarations, which make a function in the work-library. After having run that file, the functions can be called. Here is an example, which multiply two matrices, and find the inverse of one of them.