A function that works. It is not simple. Remove the @ Linda
-----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of EelVex Sent: Saturday, November 26, 2011 9:15 AM To: [email protected] Cc: Programming forum Subject: Re: [Jprogramming] FW: A simple function On Sat, Nov 26, 2011 at 11:29 AM, m l <[email protected]> wrote: > > I`m a beginner in J programming. > I need writing a simple function: > > round ( x * sqrt (x*y)) > > Thanks in advance. > > Matxin > > Among the gazillion ways to do this: f =: [: <.0.5+ {. * %:@*/ f 15 30 318 ------ 1. If you have a list of two numbers: x,y, you multiply them with `*/`: */ 15 30 450 2. You then take the square root (`%:`) of (`@`) that: (%: @ */) 15 30 21.2132 3. and multiply that by the first term of your list (`{.`) ({. * (%: @ */)) 15 30 318.198 4. You then "apply" (`[:`) rounding (`<.0.5+`) to that: ([: <.0.5+ {. * (%:@*/)) 15 30 318 Note that the construct in step 3 is a train of 3 verbs (see: http://www.jsoftware.com/help/learning/09.htm). (f g h) y == (f y) g (h y) where y = 15 30 f = {. (take first) g = * (multiply) h = %:@*/ (square root of product) Also, you round a number n by taking the floor of (n + 0.5). ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
