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 <programming-boun...@forums.jsoftware.com> On Behalf Of David Lambert Sent: Thursday, September 6, 2018 6:11 PM To: programming <programm...@jsoftware.com> 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, programming-requ...@forums.jsoftware.com wrote: > Date: Tue, 04 Sep 2018 11:50:43 +0000 > From: Martin Kreuzer<i...@airkreuzer.com> To:programm...@jsoftware.com > Subject: [Jprogramming] Tacit form: How to handle intermediate > result..? > Message-ID: > <5b8e71a5.1c69fb81.65e5c.4a9esmtpin_added_miss...@mx.google.com> > 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 http://www.jsoftware.com/forums.htm