Martin, this is normal evaluation of Noun Verb Noun Verb Noun Verb … Consider:
100 200 300+1 NB. The “literal” 100 200 3000 is identified as a single noun of 3 numbers, so this is parsed as NOUN VERB NOUN 101 201 301 100,200,300+1. NB. This is identified as Noun VERB Noun VERB Noun VERB Noun, and evaluated as normal (what appears right to left) 100 200 301 Breaking down your example 3,4,5 (4 : ‘y-x) 6 5 (4 : 'y-x') 6 1 4,5 (4 : 'y-x') 6. NB. Here 4 is catenated to the result of the above 4 1 3,4,5 (4 : 'y-x') 6. NB: Here 3 is catenated to the result of above 3 4 1 You will require ( ) to do the catenations first if you have them to the left of the (4: verb) (3,4,5) (4 : 'y-x') 6 3 2 1 Cheers, Rob > On 6 Sep 2018, at 4:09 pm, Martin Kreuzer <i...@airkreuzer.com> wrote: > > @Raul > > Thanks - it has been very enlightening to see the expression to grow 'more' > tacit from line to line ... > > I went through it (line by line) and stumbled upon this issue: > > Until now I thought that > > 3 4 5 -: 3,4,5 > 1 > > giving identical results in subtraction > > 6 - 3 4 5 > 3 2 1 > 6 - 3,4,5 > 3 2 1 > > I then wrapped that into a function (still giving identical results) > > 6 (4 : 'x-y') 3 4 5 > 3 2 1 > 6 (4 : 'x-y') 3,4,5 > 3 2 1 > > but not with reverse order > > 3 4 5 (4 : 'y-x') 6 > 3 2 1 > 3,4,5 (4 : 'y-x') 6 > 3 4 1 > > This I do not understand ... > > -M > > > > > At 2018-09-04 14:00, you wrote: > >> I was about to suggest something similar: >> >> 13 : '(%: x * */ x-y)' >> [: %: [ * [: */ - >> 13 : '(%: y * */ y-x)' >> [: %: ] * [: */ -~ >> 13 :'y ([: %: ] * [: */ -~)-:+/y' >> ] ([: %: ] * [: */ -~) [: -: +/ >> taher=: ] ([: %: ] * [: */ -~) [: -: +/ >> taher 3 4 5 >> >> >> Variations are possible, of course. For example: >> taher=: %:@(] * +/@:-~) +/@:-: >> >> Thanks, >> >> -- >> Raul >> On Tue, Sep 4, 2018 at 9:46 AM 'Mike Day' via Programming >> <programm...@jsoftware.com> wrote: >> >> > Does this help? >> > Each line is a small amendment to the preceding one... >> > (-:@(+/))3 4 5 NB. Semiperimeter, s >> > 6 >> > (-:@(+/)-0&,)3 4 5 NB. s - 0, a, b, c >> > 6 3 2 1 >> > (-:@(+/)*/@:-0&,)3 4 5 NB. s * (s - a) * ... >> > 36 >> > (-:@(+/)%:@(*/)@:-0&,)3 4 5 NB. Heronâs formula applied to 3 4 5 >> > 6 >> > (-:@(+/)%:@(*/)@:-0&,) NB. Let interpreter remove unnecessary >> > brackets... >> > -:@(+/) %:@(*/)@:- 0&, >> > So the semiperimeter is calculated just the once. It relies on converting >> > the triplet a,b,c to the quadruplet 0, a, b, c, rather than doing >> > particularly smart bracketing. >> >> > I donât often use [: but if you prefer it, the following arises from a >> > similar building process using [: rather than @ and @: >> >> > ([:-:(+/))3 4 5 >> > 6 >> > (([:-:(+/)) - 0&,)3 4 5 >> > 6 3 2 1 >> > (([:-:(+/))( [: */ - )0&,)3 4 5 >> > 36 >> > (([:-:(+/))( [: %: [: */ - )0&,)3 4 5 >> > 6 >> > (([:-:(+/))( [: %: [: */ - )0&,) NB. Get rid of extra brackets >> > ([: -: +/) ([: %: [: */ -) 0&, >> >> > Cheers, >> > Mike >> >> >> >> > Sent from my iPad >> >> > > On 4 Sep 2018, at 12:50, Martin Kreuzer <i...@airkreuzer.com> wrote: >> > > >> > > 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 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