I guess one of my questions directed at how the function works under the
hood.

Is it that 3!:2 is the mechanism jmf uses to treat the map?
How do these forms differ?

Ak

On Thu., Feb. 2, 2023, 22:31 Raul Miller, <rauldmil...@gmail.com> wrote:

> You can measure overhead with timespacex
>
> Maybe you had already been doing that?
>
> --
> Raul
>
> On Thu, Feb 2, 2023 at 11:29 PM Ak O <akin...@gmail.com> wrote:
> >
> > Is this less overhead than the jmf form?
> >
> > In your example, every case where I want to operate on a file or an
> object
> > within the file requires translation through the 3!:2 operator.
> >
> > Maybe it is functionally the same as the map_jmf_ function, or am I
> > thinking about this incorrectly?
> > Or can you please explain the difference.
> >
> > Thx
> >
> >
> > Ak
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> >
> > On Thu., Feb. 2, 2023, 15:43 Don Guinn, <dongu...@gmail.com> wrote:
> >
> > > 'testfile.txt' fwrite~3!:1 'Hello World!';(i.3 4);<2 1$'Text Here';1 2
> 3 4
> > >  456
> > >
> > > 3!:2 fread 'testfile.txt'
> > >
> > > ┌────────────┬─────────┬───────────┐
> > >
> > > │Hello World!│0 1 2 3│┌─────────┐│
> > >
> > > │ │4 5 6 7││Text Here││
> > >
> > > │ │8 9 10 11│├─────────┤│
> > >
> > > │ │ ││1 2 3 4 ││
> > >
> > > │ │ │└─────────┘│
> > >
> > > └────────────┴─────────┴───────────┘
> > >
> > > On Thu, Feb 2, 2023 at 2:19 PM Ak O <akin...@gmail.com> wrote:
> > >
> > > > In this case the data is an array of boxes.
> > > > The datatype is 'boxe'd.
> > > > The data is of some shape.
> > > >
> > > > These things have to be preserved in order to correctly restore them
> > > > later. (at some cost,  up-front to specify them,  afterwards to
> recall
> > > the
> > > > specifics, or something else) It might be easy to write as literal,
> but
> > > > reverting  back can present some challenges.
> > > >
> > > > For example:
> > > > ary=: 'abcd';4 5 6 7; 2 2 $ 8.9 7.6 .6.5 5.4
> > > >
> > > >      datatype ary
> > > > boxed
> > > >
> > > >      datatype ":ary
> > > > literal
> > > > ***Danger***
> > > >      $ary     NB. An array of structures that preserves operational
> > > > intention.
> > > > 3
> > > >      $":ary   NB. An array whose structure is different than its
> > > > operational intention.
> > > > 4 22
> > > >
> > > > These are different and need to be accounted for.
> > > >
> > > >      datatype (>0{ary)
> > > > literal
> > > >
> > > >      datatype (>1{ary)
> > > > Integer
> > > >
> > > >      datatype (>2{ary)
> > > > floating
> > > >
> > > >
> > > > Each unit has a shape and a type to preserve.
> > > >
> > > > If I want to operate on this object with the meaning intended for it
> when
> > > > it was created, many errors can be avoided when unnecessary
> intermediate
> > > > conversions are avoided.
> > > >
> > > > Jmf allows you to operate directly without having the need to
> > > > revert from literal to your operation/operand, datatype (with the
> > > > associated overhead and tracking).I am not saying that there is no
> > > overhead
> > > > with jmf, just that the cognitive load is offset or preset because
> jmf
> > > > treats it for the user.
> > > >
> > > >
> > > > (1!2 & 1!:/, fwrite , fread) forms.
> > > > 1. Convert to literal.
> > > > 2. Write literal to file.
> > > > 3. Read literal from file.
> > > > 4. Convert literal type to operation type
> > > > 5. Operate with type.
> > > > End
> > > > ___
> > > >
> > > > jmf form.
> > > > 1. Create jmf file.
> > > > 2. Map jmf file.
> > > > 3. Operate with file.
> > > > End
> > > >
> > > >
> > > > I am interested in understanding better how the best performance is
> > > > achieved comparing these forms.
> > > >
> > > > Thoughts.
> > > >
> > > >
> > > > Ak
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > On Thu., Feb. 2, 2023, 07:51 bill lam, <bbill....@gmail.com> wrote:
> > > >
> > > > > Using Jmf is overkill. Also what are the advantages of jmf over
> > > 3!:1/3!:2
> > > > > in this case?
> > > > >
> > > > > On Thu, 2 Feb 2023 at 7:17 PM Ak O <akin...@gmail.com> wrote:
> > > > >
> > > > > >      load 'jmf'
> > > > > > NB. Loads jmf facilities.
> > > > > >
> > > > > >      testfile =: {2,\?50#75
> > > > > >
> > > > > >      fn =: jpath
> 'C:\Users\skip\J904-user\temp\foo\testfile_name.jmf'
> > > > > > NB. Links a covername to the file path.
> > > > > >      createjmf_jmf_ fn;(([:(*&8)#);testfile)
> > > > > > NB. Create the container for your file.
> > > > > > NB. -fn is your reference name
> > > > > > NB. -(([:(*&8)#);testfile) allocates the size of yor fike in
> bytes
> > > > > >
> > > > > >      map_jmf_ 'testfile_disk';fn
> > > > > > NB. Maps the file to a noun 'testfile_disk'
> > > > > >      ] testfile_disk_jmf_ =: testfile
> > > > > >
> > > > > >      unmap_jmf 'testfile_disk_jmf_'
> > > > > > NB. Release mappings
> > > > > > Or
> > > > > > Exit 0
> > > > > > Close session.
> > > > > >
> > > > > >
> > > > > > New session.
> > > > > >
> > > > > >      load 'jmf'
> > > > > >      fn =:  jpath
> > > 'C:\Users\skip\J904-user\temp\foo\testfile_name.jmf'
> > > > > >      map_jmf_ 'testfile1';fn
> > > > > > NB. Map file
> > > > > >      ] testfile1_jmf_
> > > > > > NB. File loaded as noun 'testfile1_jmf_'
> > > > > >
> > > > > > Some potential benefits of the .jmf datatype:
> > > > > > -Preserves header and shape information.
> > > > > > -If you want to map you file as read only, use the following
> syntax
> > > > > > map_jmf_ 'testfile1';fn;'';1
> > > > > > -If you would like it to be copy-on-write use the following
> syntax
> > > > > > map_jmf_ 'testfile1';fn;'';2
> > > > > >
> > > > > >
> > > > > > Ak
> > > > > >
> > > > > > On Wed., Feb. 1, 2023, 21:48 'Skip Cave' via Programming, <
> > > > > > programm...@jsoftware.com> wrote:
> > > > > >
> > > > > > > I have a boxed noun:
> > > > > > >
> > > > > > > ] testfile =: {2,\?15#50
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> ┌────┬─────┬─────┬─────┬─────┬─────┬────┬────┬────┬────┬─────┬────┬───┬────┐
> > > > > > >
> > > > > > > │9 21│21 47│47 37│37 13│13 33│33 20│20 4│4 49│49 6│6 25│25
> 33│33
> > > 9│9
> > > > > 6│6
> > > > > > > 43│
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> └────┴─────┴─────┴─────┴─────┴─────┴────┴────┴────┴────┴─────┴────┴───┴────┘
> > > > > > >
> > > > > > >
> > > > > > > I want to store it in the following location on my machine:
> > > > > > >
> > > > > > >
> > > > > > > ]fn =. < 'C:\Users\skip\J904-user\temp'
> > > > > > >
> > > > > > > ┌────────────────────────────┐
> > > > > > >
> > > > > > > │C:\Users\skip\J904-user\temp│
> > > > > > >
> > > > > > > └────────────────────────────┘
> > > > > > >
> > > > > > > Then I will close that J session.
> > > > > > >
> > > > > > >
> > > > > > > Later, I will start a new J session, and I want to read that
> saved
> > > > file
> > > > > > > into a noun called 'test1'
> > > > > > >
> > > > > > >
> > > > > > > What is the J code for writing the noun into a file in the
> first
> > > > > session?
> > > > > > >
> > > > > > > What is the J code to read the file into a noun in the second
> > > > session?
> > > > > > >
> > > > > > > Should I use 1!2 & 1!:1, or fwrite & fread, or something else?
> > > > > > >
> > > > > > >
> > > > > > > Where in the J doc are these file operations and their
> tradeoffs
> > > > > > described?
> > > > > > >
> > > > > > >
> > > > > > > Skip
> > > > > > >
> > > > > > >
> > > > > > > Skip Cave
> > > > > > > Cave Consulting LLC
> > > > > > >
> > > >
> ----------------------------------------------------------------------
> > > > > > > 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
> > > > >
> > > >
> ----------------------------------------------------------------------
> > > > 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
> ----------------------------------------------------------------------
> 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