Generally speaking, errors of this sort are "heuristic" -- the idea is
to catch coding issues which were probably mistakes.

Also, in contexts where ($) could produce the same result as ({.), you
could append a desired fill element $'s right argument.

Or, at least, that's how I understand it.

-- 
Raul

On Mon, Feb 20, 2023 at 9:27 AM Jan-Pieter Jacobs
<[email protected]> wrote:
>
> 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
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to