For your last part determining 'typ' I have the following verb:

datatype=: 3 : 0
(2^.(3!:0) y)>@{'boolean';'literal';'integer';'floating';'complex';
'boxed';'extended';'rational';'sparse boolean';'sparse literal';'sparse
integer';'sparse floating';'sparse complex';'sparse
boxed';'symbol';'unicode'
)

NB. line wrap!


R.E. Boss


> -----Oorspronkelijk bericht-----
> Van: [EMAIL PROTECTED] [mailto:programming-
> [EMAIL PROTECTED] Namens Hahn, Harvey
> Verzonden: zaterdag 8 maart 2008 19:48
> Aan: Programming forum
> Onderwerp: [Jprogramming] Beg Q--Am I forgetting anything really important
> inthis function?
> 
> I'm not sure if this is the "correct" forum or not, but of all four
> fora/forums this seemed the closest.  (Please point me to the proper forum
> for future messages if this is NOT the correct forum for these kinds of
> queries.)
> 
> In a number of messages over the past year or so, I've noticed that the
> solution to some of the difficulties that people were having was that the
> kind of data that *actually* resulted from some series of data
> manipulations was not what people *thought* was resulting.  As a beginner,
> I thought this issue was something I needed a practical tool for, as I
> experimented and investigated various kinds of things (such as piece-by-
> piece analyses of scripts and programs written by others as well as
> debugging my own first attempts at writing J code).  And so I came up with
> a verb/function named "about" that tells me basic information about data:
> a brief description of the data, the shape of the data, and the type of
> data in the leading element.  The syntax is, for example, "about data1"
> (no quotes, of course).  I intended this utility for use by beginners like
> myself.  By the way, since the documentation has a preferred terminology
> (atom, list, table) as well as an alternate terminology (scalar, vector,
> matrix), I included both (separated by a slash) in the "description"
> information.
> 
> Here's the function I wrote:
> 
> ==================================================
> about =: 3 : 0
> NB. by Harvey E. Hahn -- 5 Mar 2008
> shape =. $y
> rank =. [EMAIL PROTECTED] y
> if. 1<rank do.
>   value =. 'TABLE/MATRIX'
> elseif. 1=rank do.
>   value =. 'LIST/VECTOR'
> elseif. do.
>   value =. 'ATOM/SCALAR'
> end.
> typval =. 3!:0 y
> if. (32=typval) do.
>   value =. 'BOXED ',value
>   typval =. 3!:0 >(0{y)    NB. leading item of y
> end.
> select. typval
>   case. 1 do. typ =. 'integer/boolean'
>   case. 2 do. typ =. 'literal'
>   case. 4 do. typ =. 'integer'
>   case. 8 do. typ =. 'floating point'
>   case. 16 do. typ =. 'complex'
>   case. 32 do. typ =. 'boxed'
>   case. 64 do. typ =. 'extended integer'
>   case. 128 do. typ =. 'rational'
>   case. 1024 do. typ =. 'sparse boolean'
>   case. 2048 do. typ =. 'sparse literal'
>   case. 4096 do. typ =. 'sparse integer'
>   case. 8192 do. typ =. 'sparse floating point'
>   case. 16384 do. typ =. 'sparse complex'
>   case. 32768 do. typ =. 'sparse boxed'
>   case. 65536 do. typ =. 'symbol'
>   case. 131072 do. typ =. 'unicode'
> end.
> value;shape;typ
> )
> ==================================================
> 
> My question to the group:
> 
> This is my first version of a rather elementary level function, and so are
> there any huge holes for beginner use that I've forgotten to account for?
> 
> I'm also thinking of the possibility of making the function dyadic, so
> that a left value of 0 (default, if no value given) makes the function
> operate as above, but a left value of 1 (or perhaps nonzero) adds a row of
> boxes above the current information with descriptors of the three pieces
> of information (such as "description", "shape", and "datatype").
> 
> On the other hand, maybe this function already exists, buried somewhere in
> the J documentation.  If that's the case, I won't say that I guess I did
> this work for nothing, because I've learned a lot in the process!
> 
> Thanks for your assistance!
> 
> Harvey
> 
> --
> ===========================================
> Harvey E. Hahn, Manager, Technical Services Department
> Arlington Heights (Illinois) Memorial Library
> 847/506-2644 - FX: 847/506-2650 - Email: hhahn(at)ahml(dot)info
> OML & Scripts web pages: http://www.ahml.info/oml/
> Personal web pages: http://users.anet.com/~packrat
> 
> ----------------------------------------------------------------------
> 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