I believe your original question was wether it was possible to remove the '' after a verb. This is called a niladic (like monadic/dyadic) verb in APL, but is not possible in J.
If you wish to "fix" an argument to a verb, you can do so by creating a constant verb that returns the argument in question, so as to discard the actual argument you call the verb with: f=: u@(m"_) "f y" would execute monadic u with argument m regardless of y. There is a stdlib conjunction called "bind" that does exactly this. Best regards, Louis Sent from my iPhone > On 21 Apr 2016, at 16:20, Martin Kreuzer <[email protected]> wrote: > > Don - > As (exit=: 2!:55) in stdlib.ijs showed it being simply a synonym, I now > understand > Bill - > your suggestion to handle these (sdt=: 6!:0), (ppchk=: 9!:10) ... in a > similar manner. > -M > > At 2016-04-17 13:32, you wrote: >> "exit" is defined in 'system/main/stdlib.ijs' at line 226 in J804. J >> provides tools for timer events (see QT Demos/timer) but these timer events >> won't run until J is ready for input. So a noun like a current minute will >> not update while a long running script is running. If it is that you want a >> noun that is updated by an external event like the time of day it may be >> overkill, but you could share a name with another instance of J which only >> runs a timer and updates the name when something like the current minute >> changes. On Sun, Apr 17, 2016 at 2:59 AM, Martin Kreuzer >> <[email protected]> wrote: > Don - > Thanks for reminding me of the >> shortcut to minutes via (4{sdt). > > Don, Bill - > Thanks for your >> suggestion defining the stuff as a verb (I did some > experimenting along >> that road), but that doesn't put away the need to call > it with an empty >> string as a parameter (sdt '') (mins ''). And I think that > anwers my >> original question: it is always needed ... > btw, (exit y) being a "wrapper" >> for (2!:55 y), could you point me to its > (exit) definition..? > > Raul - > >> Thanks for pointing me to the (wd) command reference (I wasn't aware of > >> that). > I successfully tried your timer example (having first experienced >> the need > for cleanup :), but only while calling the verbs with parameter >> (sdt '') > resp (mins'') -- different to what you cited in your mail where >> you seem to > have used (sdt) solely ... > > -M > > At 2016-04-16 18:18, you >> wrote: > >> In addition to bill lam's excellent advice, there's also >> >> http://code.jsoftware.com/wiki/Guides/Window_Driver/Command_Reference >> >> which may interest you. Consider, for example: wd 'timer 30000' |value >> >> error: sys_timer_z_ | (i.0 0)"_ sys_timer_z_$0 |value error: >> >> sys_timer_z_ | (i.0 0)"_ sys_timer_z_$0 |value error: sys_timer_z_ | >> >> (i.0 0)"_ sys_timer_z_$0 Now, if I define: sys_timer_z_=: verb >> def >> 'sdt=: 6!:0 y' and wait for the timer event to go off, I have a value >> for >> sdt And, now that I see that it's working (so I do not have to shut >> down my >> J session to regain control), I can make the timer event run more >> often: >> sdt 2016 4 16 14 11 27.4896 wd 'timer 1' sdt 2016 4 16 14 12 >> 30.5991 >> sdt 2016 4 16 14 12 31.4788 Here, I have asked jqt to keep >> executing that >> command line ((i.0 0)"_ sys_timer_z_$0) once every >> millisecond whenever >> I'm not doing anything else. (The way it works, if >> something long running >> is happening, that command line can't be run, so >> those events get skipped.) >> But maybe keep in mind mickey mouse's >> experience in fantasia (the >> sorcerer's apprentice): if this gets out of >> control, you'll have quite a >> mess to clean up. I hope this helps, -- Raul >> On Sat, Apr 16, 2016 at 9:24 >> AM, bill lam <[email protected]> wrote: > >> std is a noun, (or a value >> in other programming languages). It is usually >> > immutable. Just curious, >> why didn't you write > sdt=: 6!:0 > ppchk=: >> 9!:10 > or > sdt=: 3 : '6!:0 y' >> > > min=: 3 :0 > {: 5 {. sdt y > ) > > >> For the other question, IEEE double >> precision is limited to 15 or 16 > >> significant digits, so that print >> precision cannot improve accuracy. > On >> Apr 16, 2016 6:48 PM, "Martin >> Kreuzer" <[email protected]> wrote: > >> >> One of my teachers once told >> me "It's even sillier to not ask a silly >> >> question" ... so here I go: >> >> >> Extracting SystemDateTime I do get a >> vector like this >> ] sdt=. 6!:0 >> '' >> 2016 4 16 9 12 59.257 >> which >> -from now on- has that value >> sdt >> >> 2016 4 16 9 12 59.257 >> >> To >> get the current minute I might do >> something like >> ] mins=. {: 5 {. >> sdt >> 12 >> which gives the same >> result some time after, unless I >> explicitely do >> ] mins=. {: 5 {. >> sdt=. 6!:0 '' >> 30 >> >> Q: >> Is >> there a way to sort of "wrap" the >> foreign (6!:0 '') so that "sdt" will >> >> show the _current_ date/time string >> when called..? >> (Sorry if I missed >> to make myself clear.) >> >> Same >> question arose when e.g. trying stuff >> like >> -- check print precision >> >> ppchk=. 9!:10 '' >> -- set print >> precision >> ppset=. 3 : '9!:11 (y)' >> NB. seems to work ... >> ppset >> 7 >> >> 9!:10 '' >> 7 >> ppchk >> 7 >> >> ppset 11 >> >> 9!:10 >> '' >> 11 >> ppchk NB. has (of course) >> still the previous value ... >> >> 7 >> >> And (again) here comes the silly >> >> Q: >> Is there a way to >> define "sdt" or "ppchk" (from above) so that they >> >> immediately react to >> changes to the environment..? >> (Looks to me if >> I'm asking for a verb >> without a noun to act on; is that >> the moment the >> empty string ('') >> comes into play and the dog chases its >> tail..?) >> >> >> -M >> >> >> >> ---------------------------------------------------------------------- >> >> >> 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
