@Rob
Thanks for the patient clarification ...
I should have seen this (if I had been more persistent :) by comparing
3,4,5 -: 3 4 5
3 4 0
with
(3,4,5) -: 3 4 5
1
-M
At 2018-09-06 06:28, you wrote:
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
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
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm