[Jprogramming] interesting unicode

'Pascal Jasmin' via Programming programming at jsoftware.com
Mon Jul 6 23:46:40 UTC 2015


u: 256#. inv 9812938749123747923849273491287349128437921837928173492734791823749102983479128379128472342342342342342342342343x

will print visually useful binary data (I guess referred to as superascii here:  
http://www.jsoftware.com/jwiki/Guides/UnicodeGettingStarted?highlight=%28unicode%29)

  timespacex 'u: 65536#. inv 9812938749123747923849273491287349128437921837928173492734791823749102983479128379128472342342342342342342342343x' 
0.00072128 77184 

  timespacex 'u: 256#. inv 9812938749123747923849273491287349128437921837928173492734791823749102983479128379128472342342342342342342342343x' 
0.00013824 114944

quite a bit faster to just stick to superascii, but the reason for it is this surprising result:

 timespacex '256x#. 256#. inv 9812938749123747923849273491287349128437921837928173492734791823749102983479128379128472342342342342342342342343x' 
0.00016256 115200 


 timespacex '65536x#. 65536#. inv 9812938749123747923849273491287349128437921837928173492734791823749102983479128379128472342342342342342342342343x' 
0.00069696 77440

its surprising in that it should be less work to split and reassemble into larger chunks.

another quirk:
(expected)
 3!:0 u: 65536 #. inv 9812923438x 
131072

 3!:0 ": u: 65536 #. inv 9812923438x 
2  NB. string but displays the same as if unicode.  sounds neat.

  3 u: u: ": u: 65536 #. inv 9812923438x 
2 228 163 165 229 144 174 
 
if you take a string that looks like unicode it turns into superascii

 3 u:  u: 65536 #. inv 9812923438x 
2 18661 21550 


one way to ensure the right result is to use instead of uucp, 


uucp2 =:  ucp`]`(ucp@:u:)@.(1 i.~ 2 131072 = 3!:0)


 3 u: uucp2  3 u: u:   65536 #. inv 9812923438x 
2 18661 21550
 3 u: uucp2  ": u: 65536 #. inv 9812923438x 
2 18661 21550 

 3 u: uucp2   u:   65536 #. inv 9812923438x 
2 18661 21550


More information about the Programming mailing list