Right, the main problem for me is I've troubles to understand iteration of verbs over array dimension any suggestion for tutorial?
aks_sba wrote: > > Pascha, > > The people who have been responding are trying to help you understand the > "j way" to get your problem addressed. In other words, they have been > showing you how to solve the problem using "loop less" J sentences. > > In order for you to really understand these helpful suggestions, you have > to understand how iteration of verbs across an array dimension is implicit > in the language. > > However, j is certainly capable of iterating manually over data; just use > a control structure as described in the lhttp below: > > http://www.jsoftware.com/docs/help701/jforc/control_structures.htm#_Toc191734474 > > Sent from my iPhone > > On Sep 10, 2012, at 4:41 PM, pascha <amirpasha...@gmail.com> wrote: > >> >> could I put it into simple form: >> >> I'd like to write a verb that reads and process "each" row of a table (50 >> x >> 8) with the condition that this verb calls for two other verbs (read and >> write) which they need a specific path. The problem is that how can I >> read >> this table row by row and number the path's "filenames" based on the >> row_number that is processing? >> >> process=: : 0 >> input=: read '/home/user/input/filename', row_number ,'.pgm' >> >> **some calculations** >> >> output=: write '/home/user/output/filename', row_number ,'.pgm' >> ) >> >> >> >> Ric Sherlock wrote: >>> >>> I'm struggling to understand exactly what you are trying to achieve >>> but am assuming it just involves processing a set of files. If so then >>> something like this might work. >>> >>> Create a 2 column table of outfilenames ,. infilenames. It doesn't >>> really matter how you do this but for clarity here's an example: >>> outpath=: 'path/out/' >>> inpath=: 'path/in/' >>> outfiles=: ((outpath,'outfile') , ,&'.txt') each 8!:0 ] i.3 >>> infiles=: ((inpath,'infile') , ,&'.png') each 8!:0 ] i.3 >>> outfiles,.infiles >>> ┌─────────────────────┬───────────────────┐ >>> │path/out/outfile0.txt│path/in/infile0.png│ >>> ├─────────────────────┼───────────────────┤ >>> │path/out/outfile1.txt│path/in/infile1.png│ >>> ├─────────────────────┼───────────────────┤ >>> │path/out/outfile2.txt│path/in/infile2.png│ >>> └─────────────────────┴───────────────────┘ >>> >>> Then you want to process each row of this table. The verb processData >>> is a placeholder for whatever processing you need to do to take the >>> contents of the infile and produce the contents for the outfile. >>> >>> (fwrite~ processData@fread)/"1 outfiles,.infiles >>> >>> This is essentially doing the equivalent of the following for each >>> pair of out and in files: >>> >>> 'out/path/outfile1.txt' (fwrite~ processData@fread) >>> 'in/path/infile1.png' >>> >>> HTH >>> >>> >> -- >> View this message in context: >> http://old.nabble.com/path-variable-in-loop-tp34413608s24193p34415893.html >> Sent from the J Programming mailing list archive at Nabble.com. >> >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > -- View this message in context: http://old.nabble.com/path-variable-in-loop-tp34413608s24193p34419238.html Sent from the J Programming mailing list archive at Nabble.com. ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm