The type system is pretty cool, and complements my conversions pretty
well. Your default types have some of the issues I was trying to address
(intify assumes <. returns an integer, and there's no support for sparse
arrays), so for anything that needs airtight types you can add something
like
  int   4&numcast   4=3!:0    Must be numeric
which will fail on non-numbers and convert everything else to a (dense)
integer.

The linear boxed format looks very useful given how difficult gerunds
are to work with, but I'm only looking for conversions between standard
J representations.

Marshall

On Sun, Feb 07, 2016 at 01:26:06AM +0000, 'Pascal Jasmin' via Programming wrote:
> I made a higher level conversion tool a while back:  
> https://github.com/Pascal-J/type-system-j
> 
> in terms of converting gerunds and linear,  I made a "linear boxed" format 
> somewhat equivalent to gerunds, but easier to manipulate.
> 
> eval_z_ =: 1 : ' a: 1 :  m'
> lrA_z_ =: 1 : '5!:5 < ''u'''
> ncS=:3 :'z=.y 1 :y label_. 4!:0 <''z'' ' :: _2: NB. nameclass of string
> ismodstring =: 1 : 'if. 0 = 4!:0 <''u'' do. try. q =.  m eval catch. 0 
> return. end. 1 2 e.~ 4!:0 <''q''else. 0 end. '
> 
> daF =: 1 : ('a =. (''2 : '', (quote m) , '' u'') label_. 1 : (''u  1 :'' , 
> quote a)')
> 
> ncA =: 1 : 'if. 3 ~: 4!:0 < ''u'' do. if. m ismodstring do. m ; ncS m else. 0 
> ;~ ''('', m lrA ,'')'' end. else. 3;~ ''('', u lrA ,'')'' end.'
> 
> tieB =: 'if. (0 -.@-: 1{:: a =. v ncA)  do. n =. ,: a end.  u ncA,n' daF NB. 
> can put nouns as long as not last element. or code it with ncA
> 
> 
> lrB =: 1 : ',: u ncA'
> 
> 
> its part of a larger framework for strand adverbs, but strings that are 
> modifiers get coded as modifiers.
> 
> 
> '@' 3 lrB tieB 
> ┌───┬─┐
> │@  │2│
> ├───┼─┤
> │(3)│0│
> └───┴─┘
> 
> I don't remember if I posted these before, but I also made some utilities to 
> make an ar representation from "anything", and convert lrB format to gerunds.
> 
> 
> 
> toG =: 1 : ' if. 1 2 e.~ 1 {:: u ncA do. a =. (m) eval else. a=.u end. 5!:1 < 
> ''a''' NB.makes gerund from anything. turning string modifiers into gerund 
> versions. 
> 
> arS =: 1 : '". every ,&'' toG'' each  quote^:('')'' ~: {:) each m'
> 
> v2a =: 1 : ( 'a =. (''('' , u lrA ,'') m '') label_. 1 : (''m  1 :'' , quote 
> a)')
> 
> 'asf' '/\' +:@+ % tieB tieB tieB {."1 v2a arS
> +-------+---------+----------+-+
> |+-+---+|+-+-----+|+-+------+|%|
> ||0|asf|||4|+-+-+|||@|+--+-+|| |
> |+-+---+|| ||/|\|||| ||+:|+||| |
> |       || |+-+-+||| |+--+-+|| |
> |       |+-+-----+|+-+------+| |
> +-------+---------+----------+-+
> 
> '/\' toG
> +---------+
> |+-+-----+|
> ||4|+-+-+||
> || ||/|\|||
> || |+-+-+||
> |+-+-----+|
> +---------+
> 
> 3 toG
> +-----+
> |+-+-+|
> ||0|3||
> |+-+-+|
> +-----+
> 
> 
> ----- Original Message -----
> From: Marshall Lochbaum <[email protected]>
> To: [email protected]
> Sent: Saturday, February 6, 2016 4:38 PM
> Subject: [Jprogramming] Type conversion tool
> 
> Based on the recent discussions about integers and floats, I decided to
> make a general tool to convert between various J types. It's hosted
> here:
> 
> https://github.com/mlochbaum/JScripts/blob/master/Misc/typecast.ijs
> 
> The script defines typecast, a verb to convert between types while
> maintaining J equivalence (-:), and numcast, a verb which converts
> between numeric types and guarantees no errors. Both of these operations
> are quite error-prone, so it's good to have a reference with (lightly,
> at the moment) tested verbs to perform them.
> 
> My goal is to eventually have a glossary of ways to convert between
> types. I will probably make typecast suggest alternative conversion
> methods if it fails on a particular argument. So I'm curious if anyone
> knows of interesting and useful ways to convert types. The ones I know
> of are:
> 
> - Conversions (3!:x) from numbers to bytes
> - (0&~:) to convert numbers to booleans
> - (mod 2^64) conversion from exact to 64-bit integer
> - Representations (5!:x) from nouns (or other parts of speech) to
>   strings or boxes.
> - Gerund representation for a verb
> - The sneaky trick which boxes a part of speech directly
> 
> Any others?
> 
> Marshall
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
> ----------------------------------------------------------------------
> 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