Further update to calc2.ijs: Altered button order/layout.
Moved NEWNUMBER=: 1 to update rather than repeating in each operation button. Ends up highlighting another gotcha for new users: If you define a verb whose result is a verb, adverb or conjunction then J will report a syntax error when the verb runs. If no result is required then a common solution is to add an extra line that returns "empty" (i.0 0) > From: Sherlock, Ric > Sent: Wednesday, 3 November 2010 12:55 > > Yes, when I got around to testing in a clean session I had noticed that > too. > The latest version on the wiki initializes them. > > > From: Ian Clark > > Sent: Wednesday, 3 November 2010 12:52 > > > > I get value errors for op and acc on starting up, unless I initialise > > them in calc_run. > > > > On Tue, Nov 2, 2010 at 9:55 PM, Sherlock, Ric > > <[email protected]> wrote: > > > I've made some more "improvements" to calc2.ijs. Includes "-" > button. > > > Adding additional operations should be trival. > > > Renamed the verb "clear" to "clr" so that clear_z_ is still easily > > useable. > > > > > > I use the TortoiseMerge app to do diffs between similar versions of > a > > script. I'm sure you have your own favourite. > > > > > > Ric > > > > > >> From: Of Ian Clark > > >> Sent: Tuesday, 2 November 2010 17:12 > > >> > > >> Thanks for calc2, Ric. > > >> > > >> I'll have to study it closely because it's much like my own > > extension, > > >> but not exactly so. > > >> > > >> I also feel that buttons for the remaining ops are needed now, and > > >> that this needn't complicate the demo too much. In fact with the > use > > >> of 'bind' (and I was confusing 'bind' and Bond but you didn't say > > >> anything) my demo has become if anything too simple to illustrate > > what > > >> I originally wanted to. > > >> > > >> Ian > > >> > > >> > > >> On Tue, Nov 2, 2010 at 2:15 AM, Sherlock, Ric > > >> <[email protected]> wrote: > > >> >> From: Ian Clark > > >> >> Sent: Tuesday, 2 November 2010 09:33 > > >> >> > > >> >> > I agreed with Brian that I missed the "equals" button in the > > >> original > > >> >> calc.ijs. Now I miss the "plus" button. It seems unintuitive to > > >> press > > >> >> "=" when you want to add. > > >> >> > > >> >> Hahaha! (Can't please everybody.) Can I interest you in a more > > >> >> advanced calculator? It's called J ... :-) > > >> >> > > >> >> I'm just glad I wasn't on the design team of the original > pocket > > >> >> calculator. It's subtler than it looks. > > >> >> > > >> >> Providing both '+' and '=' buttons means adding a whole row or > > >> column > > >> >> of buttons or it looks untidy. I've a calc with the > conventional > > >> >> look'n'feel -- but IMO it's too complex to serve as a good > demo. > > >> >> > > >> > > > >> > I've attached an alternative layout to the JinaDay wiki page > > (named > > >> calc2.ijs) that includes separate '=' and '+' buttons. There are > > also > > >> some minor changes to some of the verbs to make it work more like > my > > >> calculator and make it easier for users to add other operation > > buttons. > > >> See if you think that works/looks OK. > > >> > > > >> >> > The current phrasing of your "blasphemous comment" has more > > impact > > >> >> but I get the feeling that your actual message is more like: > > "There > > >> is > > >> >> no need to get your head around tacit definition". The fact is > > that > > >> >> many of the button handlers in the calc script use tacit code! > I > > >> >> suppose it comes down to whether you think that being > provocative > > >> >> rather than reassuring will help get your message across best. > > >> >> > > >> >> "Here Be Dragons..." > > >> >> > > >> >> I meant to be reassuring by being provocative. Reassuring (to > > >> APLers) > > >> >> by being (or, rather, risking being) provocative to J-ers. > > >> >> > > >> >> De-mystifying a topic is never free from the insinuation that > the > > >> >> mystery is intentional: or at the very least, serving someone's > > >> >> purpose. People are quite smart, you know. If a mystery serves > no > > >> >> purpose -- or no one's purpose -- it soon gets cleared up. It > > >> follows > > >> >> that de-mystification is apt be viewed as de-bunking. > > >> >> > > >> >> It wasn't my intention to debunk. Simply to cast some light. > > Maybe > > >> to > > >> >> let in some fresh air. > > >> >> > > >> >> On first encountering APL my initial response was to feel > > >> inadequate. > > >> >> I should have felt humble, but instead I felt humiliated. > Because > > at > > >> >> the time I was masquerading as a "computer scientist", ie an > > expert. > > >> >> This was back in 1973, when the industry was less fragmented. > It > > was > > >> >> "IBM and the Seven Dwarfs" -- and I was IBM. > > >> >> > > >> >> So I looked for holes. For excuses to label APL as mad, not > > >> brilliant. > > >> >> Then I'd be exposed as sane, not stupid. It reassured me to > swap > > sly > > >> >> remarks about the language, especially as others felt the same > as > > I. > > >> >> > > >> >> On first encountering J, I experienced the selfsame feeling I > had > > on > > >> >> first meeting APL. It largely revolved around "tacit > > programming". > > >> >> Attempts by those who'd Seen The Light to motivate me by saying > > >> "it's > > >> >> really quite easy" -- or -- "it's far better than APL doing it > > this > > >> >> way" simply provoked hostility. And not just in me, I observed. > > >> >> > > >> >> So there was a barrier to surmount, before I could contemplate > J > > >> >> equably, let alone consider using it myself for a serious task. > > >> >> > > >> >> Tacit programming _isn't_ "really quite easy". In principle, > > >> maybe... > > >> >> But in practice it's as much a strain as coding in 68000 ASM. > > (Yes, > > >> >> done that -- and sold the result). > > >> >> > > >> >> And that, I think, is the way to look at it. Those who can do > it > > can > > >> >> justly be proud of their skill. But nobody is ashamed of not > > being > > >> >> able to compose 68000 machine code in their heads without > > computer > > >> >> assistance, so why should they be when it's tacit J? > > >> >> > > >> >> There is this difference. Machine-code is best kept beneath the > > >> >> covers. But tacit J beneficially seeps out. As you observe, > > there's > > >> >> tacit code in calc.ijs. > > >> >> > > >> >> IMO the issue over tacit J is not whether we should banish > > (digit&1) > > >> >> from calc.ijs, but whether we should aim to make novices > ashamed > > of > > >> >> writing: > > >> >> quo=: 3 : 'Q,(":>y),Q' NB. place datum in quotes > > >> >> instead of: > > >> >> quo=: Q , Q ,~ [: ": > > > >> >> because that, I think, has been counter-productive. > > >> >> > > >> >> They'll do so in the end... and like as not they won't know > > they're > > >> >> doing it. > > >> > > > >> > I agree that it is counterproductive to denigrate the use of > > explicit > > >> definition. I don't think that happens really, although I know > that > > a > > >> lot of code on the forums is tacit. As I said recently on > > comp.lang.apl > > >> I think this is really just a side effect of more experienced > users > > >> thinking and working more in tacit mode. > > >> > > > >> > I remember when I started learning J that I pretty much > "ignored" > > >> trying to create tacit verbs - I was content to stick with > explicit. > > I > > >> found the tacit code on the forum hard to read/understand. I think > > my > > >> biggest hurdle in coming to terms with tacit was being able to > > reliably > > >> identify the parts of speech for J's various primitives (verb vs > > adverb > > >> vs conjunction). Without that knowledge it is hard to identify the > > >> composed verbs and correctly separate the hooks from the forks. As > I > > >> learnt the J primitives and their parts of speech, suddently tacit > > >> didn't seem so hard after all, and now I find myself using it in > > >> preference to explicit for many sentences. > > >> > > > >> > Having said that I'd be more inclined to promote the use this > form > > >> than the one liner string form above. Otherwise things can get > messy > > >> when dealing with strings. > > >> > quo=: 3 : 0 > > >> > Q,(":>y),Q > > >> > ) > > >> > > > >> > Ric > > >> > ---------------------------------------------------------------- > -- > > --- > > >> - > > >> > 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
