[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