Looking through the implementation of dev/eformat, I found this line which
puzzled me:
https://github.com/jsoftware/dev_eformat/blob/4c285152bb27c2bfcb474738ea3b839e4ce96d0d/eformat.ijs#L496
There's nothing wrong with that line, or with the fact it triggers an
error, but it does indicate that $ raises an error in a situation where {.
does not, i.e. reshaping an empty array errors, while overtaking from one
does not.
Indeed, 5 $ '' or 5$ 0$0 give an error, while 5 {. '' and 5 {. 0$0 just
work, producing arrays of 5 spaces or zeros as expected. 5 $!.'' '' also
works, as does 5$!.1 ''.
Why wouldn't $ be able to see the data type (and thereby, fill element) of
it's y argument, and fill accordingly? As far as I remember, any noun in J
has a datatype, and a fill element. As the the fill element is a scalar,
the dimensionality being different in the case of $ shouldn't matter either.
Is there anything I'm missing, or is this really an inconsistency without
any reason for existence?
Best regards,
Jan-Pieter
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm