[Jprogramming] Classification problem
Bo Jacoby
bojacoby at yahoo.dk
Fri Sep 24 14:37:45 HKT 2010
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 <rhui000 at shaw.ca>:
Fra: Roger Hui <rhui000 at shaw.ca>
Emne: Re: [Jprogramming] Classification problem
Til: "Programming forum" <programming at 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 <rtrlists at googlemail.com>
Date: Thursday, September 23, 2010 6:57
Subject: Re: [Jprogramming] Classification problem
To: Programming forum <programming at 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.boss at planet.nl> wrote:
>
> > I agree. First comes correctness, then performance, then elegance.
> >
> >
> > R.E. Boss
> >
> >
> > > -----Oorspronkelijk bericht-----
> > > Van: programming-bounces at jsoftware.com [mailto:programming-
> > > bounces at 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.boss at 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-bounces at jsoftware.com
> [mailto:programming-
> > > >> bounces at 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-bounces at jsoftware.com [programming-
> > > >> bounces at jsoftware.com] On Behalf Of Raul Miller [
> > rauldmiller at 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
More information about the Programming
mailing list