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&amp;data=02%7C01%7C%7C8d2147240443485c7f8c08d61445ac18%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636718686798916834&amp;sdata=Yuys8QE3yMvBtUraCohR9dRgPugZDeNaNh3BoBCzJjU%3D&amp;reserved=0
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to