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&amp;data=02%7C01%7C%7C8d2147240443485c7f8c08d61445ac18%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636718686798916834&amp;sdata=Yuys8QE3yMvBtUraCohR9dRgPugZDeNaNh3BoBCzJjU%3D&amp;reserved=0
>>----------------------------------------------------------------------
>>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%7C6a3b759ff39047b57b2008d61566c5f4%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636719928479375876&amp;sdata=BLqEkHGUbR%2BV8llPb934OQ029y2WCAwf8f%2FuxAybiZA%3D&amp;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&amp;data=02%7C01%7C%7C6a3b759ff39047b57b2008d61566c5f4%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636719928479375876&amp;sdata=V4OF70Zk83D46PEjKJ0ELMgOaUaV8VgpFbxbt82WJu0%3D&amp;reserved=0
>----------------------------------------------------------------------
>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%7C6a3b759ff39047b57b2008d61566c5f4%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636719928479375876&amp;sdata=BLqEkHGUbR%2BV8llPb934OQ029y2WCAwf8f%2FuxAybiZA%3D&amp;reserved=0

----------------------------------------------------------------------
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%7C6a3b759ff39047b57b2008d61566c5f4%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636719928479375876&amp;sdata=BLqEkHGUbR%2BV8llPb934OQ029y2WCAwf8f%2FuxAybiZA%3D&amp;reserved=0
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to