On Sun, 20 Mar 2022, Raul Miller wrote:

Deprecation based on something which has not been implemented is bad news.

What are you getting at? That I did not include a deprecation plan in my proposal? I would like to first establish what the ideal semantics should _be_. Getting there is secondary.


It's my understanding that ucs-2 is a subset of utf-16.

More or less. But j plays fast and loose with utf, and in particular could have ignored surrogates.


Every primitive is in some sense "inconsistent" with other primitives, because every primitive accomplishes something different.

The ": primitive is about formatting text for display. That is going to have to be different from an operation like addition.

Arguably, - is inconsistent, as x-y takes _x_ as primary data, and moves y units with respect to it. More famously, % and | are not consistent with each other, as % takes its divisor on the right, and | takes its divisor on the left. I could argue that % and - should be flipped (and others _have_ argued thus). But I don't, because there are also merits to the extant scheme. To wit, % and - follow existing mathematical and programming notation (as does |; a|b can be used to denote that b is divisible by a), and they behave sensibly and usefully as monads.

But--two issues.

The first is that ": must still stand on its own merits; it is not enough to say that inconsistency is inevitable. Why is this the best way to format text? And is consistency between primitives _undesriable_? Under my proposed semantics, ": would behave consistently with other primitives.

Second, and more important, is that the inconsistency is different in kind. % and | agree that a 5 is a 5. But whereas ": thinks that (8 u:243) is a LATIN SMALL LETTER O WITH ACUTE, other primitives think that it is a LATIN CAPITAL LETTER A WITH TILDE followed by a SUPERSCRIPT THREE.


Ah, that was my browser / email client messing up.

Just to avoid any ambiguity: the correct display of z is as a lowercase a, uppercase A overstruck with a tilde, superscript 3, lowercase b.


I think a point has been lost here on why getting rid of u: would not change anything about the initial example in this thread:

I think I addressed this; maybe I was not clear enough. Removing u: alone is not sufficient to solve the problem; but it is necessary, and my proposal in its entirety remedies the problem.
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to