> Perhaps also worth wondering why we're using english, from before we
were born, to communicate about supposedly advanced topics...

Yup, some things are so darn' good there jest ain't no improvin' on them.

Whether that goes for the venerable tty, I wonder. It seems only yesterday
I got my first tty (actually a Telex machine). Only the day before I'd been
delivering boxes of punched cards across London by taxi. Now I could type
to a computer in Belgium and have the answer inside a minute… can you
imagine anything better than that?

Well… 50 years on, I guess I can.

For a start, the tty went paperless…

Apart from that, did anything happen? I'd say yes: a lot. Which things were
good and which weren't is something we could usefully debate. Because it
would point the way ahead for the "Term" window.

Re "crex", I hesitate to offer the code. It's a rat's-nest, and only a
marginal improvement on (5!:5)…

   require 'format/zulu'
   zux
alpha
bravo
charlie
   zuf
alpha
bravo
charlie
   5!:5<'zux'
3 7$'alpha  bravo  charlie'

The trouble with (5!:5) is…

   5!:5<'zuf'
97 108 112 104 97 10 98 114 97 118 111 10 99 104 97 114 108 105 101{a.

Just getting it to print out 'LF' for (10{a.) reaps 80% of the benefit in
practice…

   crex zuf
'alpha',LF,'bravo',LF,'charlie'

Oh well, here goes…

   crex
3 : 0
0 crex y
:
NB. printable lit repn of (string)noun y
NB. y is VALUE. For cr-replacement use: crx
NB. x-:1 reveals diagnostics otherwise hidden
if. ((1 e. $) +. (0 e. $))y do.
  5!:5 <'y' return. NB. use built-in conversion instead
end.
require 'strings' NB. for: rplc
NB. Ancillary nouns:
'QT CM'=. 39 44{a.
NB. Ancillary verbs:
paren=. 1 |. ')(' , ":
q1=. QT , QT ,~ [: ": >
NB. Build representation: z
z=. y rplc QT ; QT,QT
z=. q1 z rplc CRLF ; (q1',CRLF,') ; CR ; (q1',CR,') ; LF ; (q1',LF,') ; TAB
; (q1',TAB,')
NB. catch remaining non-print chars in: y
for_c. ~. y -. 32}. 127{. a. do.
  z=. z rplc c ; q1 CM, CM,~ paren (":a. i. c),'{a.'
end.
NB. eliminate: '',*  *,'' *,'',*
z=. z rplc (CM,QT,QT,CM) ; CM
if. (3{.z)-:QT,QT,CM do. z=. 3}.z end.
if. (_3{.z)-:CM,QT,QT do. z=. _3}.z end.
NB. specify ravel for vec len: 1
if. ($y)-:(,1) do. z=. CM,z end.
try. assert y -: ".z NB. Does it convert back again?
catch.
  if. x do.
    smoutput '>>> crex: BAD lit repn of noun:'
    smoutput z
    smoutput '>>> crex: --using instead: 5!:5 <''y'''
  end.
  z=. 5!:5 <'y'
NB. Reject "cut" interpretation of boxed list
if. '<;._1' -: 5{.z do.
NB.  smoutput '>>> redoing: ',z
 4}. crex (<'~'),y return.
end.
  z return.
end.
z
)

Haven't looked at the code in years. Must have written it when I was first
learning J.

On Sat, Jul 29, 2017 at 12:21 AM, Raul Miller <rauldmil...@gmail.com> wrote:

> On Fri, Jul 28, 2017 at 6:55 PM, Jimmy Gauvin <jimmy.gau...@gmail.com>
> wrote:
> > 2) @ "Those who know J innards" : how hard would it be to add unicode as
> > valid characters for identifiers?
>
> You can find discussions on the subject using forum search (from
> jsoftware.com forums), but the brief answer is that there's no good
> way to do this.
>
> Just reading the full unicode specs is beyond the abilities of most
> people, but ... for example: there's good reasons why most people do
> not know how to type most unicode characters.
>
> Thanks,
>
> --
> Raul
> ----------------------------------------------------------------------
> 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