Please see nuvoc foreign conjunction for detail if you don't know anything about 3!:1/3!:2.
No, Jmf and 3!:1/3!:2 are totally different. On Fri, 3 Feb 2023 at 6:04 PM Ak O <akin...@gmail.com> wrote: > 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 > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm