First comes relevance, then correctness, performance, and elegance in some order. Not every problem is put right. For example. Question: from a long list of numbers, how to compute the 15th, 50th and 85th percentile? Answer: Don't do that! Compute the mean value and the standard deviation instead. Venlig hilsen, Bo
--- Den tors 23/9/10 skrev Roger Hui <rhui...@shaw.ca>: Fra: Roger Hui <rhui...@shaw.ca> Emne: Re: [Jprogramming] Classification problem Til: "Programming forum" <programming@jsoftware.com> Dato: torsdag 23. september 2010 16.48 At first I was going to respond to R.E. Boss with a cute and annoying reply, something like "first comes elegance, then elegance, then elegance". But I think now I agree with him, "first comes correctness, then performance, then elegance", rather than "first comes elegance and correctness". A counterexample to the latter is a model for dyadic index-of for vectors. An elegant and correct model is: ix=: #...@[ - (+/)@(+./\)@(=/) But due to abysmal performance this is pretty useless in practice. I guess it depends on what you mean by "first comes". If you were implementing dyadic index-of you _would_ first writing something like the above, but almost immediately you write something else. ----- Original Message ----- From: Robert Raschke <rtrli...@googlemail.com> Date: Thursday, September 23, 2010 6:57 Subject: Re: [Jprogramming] Classification problem To: Programming forum <programming@jsoftware.com> > I disagree, first comes elegance and correctness, and these tend > to go hand > in hand if you are concentrating on elegance. I quite strongly > believe a > human reader is way more important than any machine. > > Robby > > On Thu, Sep 23, 2010 at 2:24 PM, R.E. Boss > <r.e.b...@planet.nl> wrote: > > > I agree. First comes correctness, then performance, then elegance. > > > > > > R.E. Boss > > > > > > > -----Oorspronkelijk bericht----- > > > Van: programming-boun...@jsoftware.com [mailto:programming- > > > boun...@jsoftware.com] Namens Brian Schott > > > Verzonden: donderdag 23 september 2010 14:41 > > > Aan: Programming forum > > > Onderwerp: Re: [Jprogramming] Classification problem > > > > > > I agree that this solution is elegant, but for a large data > set I > > > assume that Raul's idea of prepending and then dropping 3 elements > > > would be more efficient. Don't you, too? > > > > > > (<@}./.~ *) _1 0 1,data > > > > > > On Thu, Sep 23, 2010 at 8:26 AM, R.E. Boss > <r.e.b...@planet.nl> wrote: > > > > One of the more elegant solutions is > > > > > > > > ((/:&(* </. ])) *) data > > > > +---------------+---+-----+ > > > > |_3 _1 _10 _2 _4|0 0|1 1 6| > > > > +---------------+---+-----+ > > > > > > > > > > > > R.E. Boss > > > > > > > > > > > >> -----Oorspronkelijk bericht----- > > > >> Van: programming-boun...@jsoftware.com > [mailto:programming- > > > >> boun...@jsoftware.com] Namens Marshall Lochbaum > > > >> Verzonden: woensdag 22 september 2010 23:57 > > > >> Aan: Programming forum > > > >> Onderwerp: Re: [Jprogramming] Classification problem > > > >> > > > >> It looks to me like the most terse way is > > > >> ((</. /: ~...@[)~ f) data > > > >> > > > >> Although this computes the nub twice, unlike some earlier > solutions.> > >> > > > >> Marshall > > > >> > > > >> ________________________________________ > > > >> From: programming-boun...@jsoftware.com [programming- > > > >> boun...@jsoftware.com] On Behalf Of Raul Miller [ > > rauldmil...@gmail.com] > > > >> Sent: Wednesday, September 22, 2010 3:29 PM > > > >> To: Programming forum > > > >> Subject: Re: [Jprogramming] Classification problem > > > >> > > > >> Note, if * is the universe of interesting > > > >> functions (if it does not need to be generic) then > > > >> I would be tempted to use a variation on Dan's > > > >> second suggestion: > > > >> > > > >> (<@}./.~ *) _1 0 1,data > > > >> > > > >> Note that this also preserves the relative > > > >> ordering of the data items. ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm