You need to define s. An interesting threaLin Linda .
Sent from my Verizon, Samsung Galaxy smartphone -------- Original message -------- From: Martin Kreuzer <[email protected]> Date: 9/8/18 4:40 AM (GMT-05:00) To: [email protected] Subject: Re: [Jprogramming] Tacit form: How to handle intermediate @Linda I think that your heron=: 13 :'%:*/(s y),(s y)-y' looks superior to my initial approach as it gathers _all four_ factors under the (*/) Times Insert. btw "Hope you have good classes!" For quite some time, I don't have classes any more, but once in a while do private tutoring; my last two students finished their 'matura' at Easter this year (and one of them is on 'work & travel' in New Zealand presently). @Mike Looking at your 'minor change' and the resulting tacit code, methinks that (sy=. s - y) is giving the interpreter a much stronger hint that there's a re-used intemediate result than the construct (' ... [ s2=. .... ') I used initially. -M At 2018-09-07 09:43, you wrote: >Fair enough, it looks neat, but doesn't deal >with Martin Kreuzer's original requirement to apply >s just the once, ie how should we handle the intermediate result, s? > >On the other hand, David Lambert and others >propose variations on how to factor the formula so >as to use the result of s. > >It's usually easy in explicit form, harder in >tacit form. It seems to me that using 13 : ... is very >helpful in developing a tacit form, but it >often fails to spot opportunities to save intermediate >results. 13 : ... isn't an optimising compiler >- or is it? It certainly doesn't spot the opportunity >to save the repeated (s y) in Linda's example. > >Somewhat to my surprise, a minor change to >Linda's explicit expression does result in a >single applicaton of s in a quite elegant tacit form: > >   herona=: 13 :'%:*/sy,(sy=.s y)-y' > >   herona 3 4 5 > > > >   herona 5 12 13 > >30 > >   herona > >[: %: [: */ s ([ , -) ] > > >Cheers, > >Mike > >On 07/09/2018 08:19, Linda Alvord wrote: >>It keeps getting simpler: > >>s=: 13 :'-:+/y' >>heron=: 13 :'%:*/(s y),(s y)-y' >>heron 3 4 5 >>heron 4 5 6 >>d > > >>;:'[: -: +/' > >>heron > >>;:'[: %: [: */ s , s - ]' >> > >>Explisit sentences are like English and the new >>language is the computers J anguage. First >>learn the words and then learn to read ghe ords >>in sentences. And just as you might when >>learning Spanish, you might in time begin to speak it. > >>Linda > > >>-----Original Message----- >>From: Programming >><[email protected]> On Behalf Of David Lambert >>Sent: Thursday, September 6, 2018 6:11 PM >>To: programming <[email protected]> >>Subject: Re: [Jprogramming] Tacit form: How to handle intermediate > >>A hook can save recomputation. > >>(computation with original data and reused me) (resuse me) > > >>   test=: [: %: ([: -: +/) * [: */ ([: -: +/) - ] > >>   NB. play with the half factor >>   f=:   4 %~ [: %: [: */ (([ , (- +:))~ +/) > >>   NB. shorter > >>   NB.   c o m p u t a t i o n   r e u s e >>   g=:   ([: %: [: */ [ , -)~    ([: -: +/) > >>   g2=:  ([: %: [: */ [ , -)~ -:@:(+/) > > >>   %/ (g , test) 3?@:$0 >>1 > > >>On 09/04/2018 08:00 AM, [email protected] wrote: >>>Date: Tue, 04 Sep 2018 11:50:43 +0000 >>>From: Martin Kreuzer<[email protected]> To:[email protected] >>>Subject: [Jprogramming] Tacit form: How to handle intermediate >>> result..? >>>Message-ID: >>> <[email protected]> >>>Content-Type: text/plain; charset="us-ascii"; format=flowed >>> >>>Hi all - >>> >>>To calculate the area of a flat triangle, using Heron's formula, >>>A(a,b,c)= sqrt( s2*(s2-a)*(s2-b)*(s2-c) ) I wrote a simple function >>>doing this: >>> >>>* get the three sides (as list input y) >>>* compute the half perimeter s2 >>>* build the differences s2-y >>>* build product >>>* take square root >>> >>>My explicit solution looks like this >>> >>>taher=: 13 : '%: s2 * */ s2-y [ s2=. -: +/ y' >>> >>>and works >>> >>> taher 3 4 5 >>>6 >>> >>>Suggested tacit version looks like this (and works too) >>> >>>tahert=: [: %: ([: -: +/) * [: */ ([: -: +/) - ] >>> >>>Q: Is there a way to reference the intermediate result of ([: -: +/) >>>the half perimeter s2 within the tacit expression, as has been done in >>>the explicit..? >>>[Guess the interpreter takes care of this anyway; my question aims at >>>whether a shorter formulation could be reached.] >>> >>>Thanks >>>-M >>---------------------------------------------------------------------- >>For information about J forums see >>https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.jsoftware.com%2Fforums.htm&data=02%7C01%7C%7C8d2147240443485c7f8c08d61445ac18%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636718686798916834&sdata=Yuys8QE3yMvBtUraCohR9dRgPugZDeNaNh3BoBCzJjU%3D&reserved=0 >>---------------------------------------------------------------------- >>For information about J forums see >>https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.jsoftware.com%2Fforums.htm&data=02%7C01%7C%7C6a3b759ff39047b57b2008d61566c5f4%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636719928479375876&sdata=BLqEkHGUbR%2BV8llPb934OQ029y2WCAwf8f%2FuxAybiZA%3D&reserved=0 > > > >--- >This email has been checked for viruses by Avast antivirus software. >https://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.avast.com%2Fantivirus&data=02%7C01%7C%7C6a3b759ff39047b57b2008d61566c5f4%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636719928479375876&sdata=V4OF70Zk83D46PEjKJ0ELMgOaUaV8VgpFbxbt82WJu0%3D&reserved=0 >---------------------------------------------------------------------- >For information about J forums see >https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.jsoftware.com%2Fforums.htm&data=02%7C01%7C%7C6a3b759ff39047b57b2008d61566c5f4%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636719928479375876&sdata=BLqEkHGUbR%2BV8llPb934OQ029y2WCAwf8f%2FuxAybiZA%3D&reserved=0 ---------------------------------------------------------------------- For information about J forums see https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.jsoftware.com%2Fforums.htm&data=02%7C01%7C%7C6a3b759ff39047b57b2008d61566c5f4%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636719928479375876&sdata=BLqEkHGUbR%2BV8llPb934OQ029y2WCAwf8f%2FuxAybiZA%3D&reserved=0 ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
