Devon, You present some great points. As you indicate, there are some J primitives that are related graphically and functionality (+ +. +:) where the equivalent APL glyphs (+, v, no-equivalent) aren't related graphically. However, APL graphically relates the boolean OR and AND (v, upside-down v), while in J those two primitives are graphically unrelated (+. *.). Then there are primitives whose monadic functions aren't related, but whose dyadic functions are (< <. <:).
On the other hand, There are some related primitives in APL that have graphically-related glyphs (e.g. equal and not-equal) where the equivalent J primitive symbols = and ~: aren't graphically related. And there are J primitives that are related graphically, but aren't particularly related functionally ($ $. $:). Then there are some J primitives that don't have any APL equivalent at all. All this appears to be mostly a disagreement on what primitive functions should be related, or how they should be grouped, rather than any fundamental issue. Probably the most challenging aspect of designing single-glyph symbols for J, will be the issue of related symbols. Is it more important to show a graphical relationship between boolean AND and OR like APL does, or to show a graphical relationship between plus (+) and boolean AND (+.), like J does? It looks like the first order of business in assigning single glyphs to J primitives would be to determine the best true functional groupings of the J primitives. Currently, J primitives are divided into 20-some groups of three graphically-related primitives, as well as more groups of two, and some singles. I suspect that many of the the groups of three were dictated more by the availability of the two glyphs: period (stop) and colon, used as as modifiers, rather than the blind luck of having most related primitives that just happen to fall in groups of three. There are some reasonable related groupings (^ ^. ^:) but then there are groups of graphically-similar symbols that are functionally unrelated as well ($ $. $:), (~ ~. ~:) In a grouping exercise, we would need to ignore the glyphs or symbols of either language, and try to group J primitives into the most appropriate related functional groups. We could use the primitive names rather than the symbols when placing the groups, to avoid biasing our choices with current graphical groupings.The focus should be on functional groups of primitives, with no constraints on how many primitives will be in a group. I'm sure that there will be disagreements on what the groupings should be. However, the final goal would be to make functionally-related primitives look related, graphically. This would help tremendously when learning the language. We might even be able to design glyphs that would show that boolean AND is related to *both* the boolean OR *and* to the signum (plus +). The more graphical hints as to functionality that one can build into the glyph without making the glyph too complex, the better. The art of glyph design could be quite a chalenge. It would be great if there was a way to define the "closeness of relationship" of various pairs of primitives, kind of like the "degrees of separation" in a personal relationship matrix. If we had a number which specified the closeness of each primitive to every other primitive, we could provide a reasonable cut at the best groupings, which would lead to graphically-related glyphs for each group. I will have to cogitate on this "degrees of separation" thing a bit more. Skip On Mon, Apr 8, 2013 at 12:50 PM, Devon McCormick <[email protected]> wrote: > This is nice but avoids the hard parts of the problem. > > It's easy to say that "i." is "iota", but where does "i:" fit in? In J, > the "dot" and "colon" versions of a verb often have a a fitting relation, > e.g. "+" is addition, "+." is logical "or", and (monadic) "+:" is > "double"; analogously, "*" is times, "*." is logical "and", and (monadic) > "*:" is "square". Or, how about (^ ^. ^:) as "power", "log" and "power > conjunction"? The APL characters, as pretty as they are, lose these > relations between concepts > > > On Mon, Apr 8, 2013 at 12:52 PM, William Tanksley, Jr < > [email protected] > > wrote: > > > That really is magnificent -- and I speak as someone who stopped trying > to > > learn APL (before J was easily available) because I found the character > set > > unapproachable. I could easily see myself switching to that overlay for > > normal coding and reading. > > > > I'd like to see this developed into a coherent standard with concern for > > the capabilities of different editors (I use vim and Android). > > > > Marc Simpson <[email protected]> wrote: > > > > > Personally, I think this is a neat idea and one worth pursuing. I tried > > > something similar in Emacs using overlays a while back (Don might > recall > > > this). Examples from that experiment: > > > http://0branch.com/snippets/j-symbols3.png > > > http://0branch.com/snippets/j-symbols4.png > > > > > > > -Wm > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > > > > > > -- > Devon McCormick, CFA > ^me^ at acm. > org is my > preferred e-mail > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > -- Skip Cave Cave Consulting LLC ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
