>Anyways, adverbs and conjunctions are evaluated when building tacit >verbs, so J cannot defer their name resolution until later unless you >embed them in an explicit verb.
Thanks, Raul -- I guess that perfectly describes the situation I've run up against. :) Plus the remedy, which is the one I've resorted to. :/ But IMO that's like Molière: Q: Why does morphine make you sleep? A: Because it contains a "virtus soporifis". I dreamed up my "shift" adverb precisely to define handlers tacitly, (wanting: succintly), but maybe it's a wrong path to go down. Asking the user to hold down a modifier key when clicking a button is a shabby trick anyway, only prompted by the need to economise on buttons. Ah well, back to menus and checkboxes. You can't beat-em. > I think your code browser is based on a workspace (APL) mindset. Too right it is, Bill. But "mindset" is unfair. I broke my APL mindset two years ago when I enthusiastically took up J, went back to editing ASCII txtfiles as I ever did with GBASIC, C, SNOBOL, Fortran, PL/S... and dismissed workspaces as an illusory benefit. Now I'm not so sure. Maybe APL wasn't all bad. Though what was good about it needs close scrutiny. I prefer to think of my extended browser as the Borland Pascal approach. It is distinctly more productive. You could say JGTK addresses the same problem: rapid look-aside and x-reffing, which comes almost free with workspaces. It is their main (=only?) justification. But, with effort, you can recover the useful functionality with a really smart code editor, without the run-time limitations of an actual workspace. For people too young to remember Borland Pascal, think Dreamweaver (...I daren't mention VB on this list :) On Wed, Jun 8, 2011 at 1:22 AM, bill lam <[email protected]> wrote: > hypothetically, I guess your code browser cannot retrieve the orignal > definition of nouns which has been already evaluated, similarly for verbs > which has been evaluated from adverbs or conjunctions. > > I think your code browser is based on a workspace (APL) mindset. J is > based on scripts, so that if your code browser searches collection of > scripts instead of locales (ram), there is a better chance of locating the > definition. For example, use find-in-files or ctag for mygui_myctl_button. > > Втр, 07 Июн 2011, Ian Clark писал(а): >> In my endless quest for crystal-clear gui code, I've defined a >> conjunction 'shift'... >> >> shift=: 2 : 0 >> if. 1=".sysmodifiers do. v y else. u y end. >> ) >> >> for use like this: >> mygui_myctl_button=: foo shift baa >> which works just fine. The button "myctl" does foo unless Shift is >> held down, whereupon it does baa. >> >> But... >> >> If I inspect 'mygui_myctl_button' with my code-browser (which uses >> 5!:6), what I don't see is 'foo shift baa'. >> Instead what I see is: >> >> 5!:6 <'mygui_myctl_button' >> foo (2 : 0) baa >> if. 1=".sysmodifiers do. v y else. u y end. >> ) >> >> The word 'shift' has got lost. Replaced by its definition. None of the >> other (5!:) foreigns see it either. >> >> Is there a way of retrieving the original definition? -- >> mygui_myctl_button=: foo shift baa >> >> ...I mean: without giving up on tacit code? I suppose I can always write: >> mygui_myctl_button=: 3 : '(foo shift baa)y' >> which works, but (tacitly) throws in the towel. >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm > > -- > regards, > ==================================================== > GPG key 1024D/4434BAB3 2008-08-24 > gpg --keyserver subkeys.pgp.net --recv-keys 4434BAB3 > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
