plt=: (-. */~)@(2&}.)@i.

Note 'plt'
plt n  finds all primes less than n.  For example:
   plt 10
2 3 5 7
   plt 13
2 3 5 7 11

Uses inefficient algorithm for illustration only.
Equivalent to  i.&.(p:^:_1) .
)



----- Original Message -----
From: Roger Hui <[EMAIL PROTECTED]>
Date: Friday, April 4, 2008 19:52
Subject: Re: RE: [Jgeneral] How readable is J?
To: General forum <[email protected]>

> > Just for fun, I wrote a function header as I would have if
> > this were a verb in my library:
> > 
> > NB. Monad.  Calculate the list of primes less than y+2
> 
> It's very unusual to write a verb to calculate 
> the primes less than y+2 .  More likely would be,
> less than y, or less than or equal to y .
> 
> 
> 
> ----- Original Message -----
> From: Henry Rich <[EMAIL PROTECTED]>
> Date: Friday, April 4, 2008 18:44
> Subject: RE: [Jgeneral] How readable is J?
> To: 'General forum' <[email protected]>
> 
> > I don't disagree with what you say.
> > 
> > Dan seemed to be saying, Can we read J without the
> > interpreter, rather than, Can we write readable code?
> > 
> > In my own code I have about 4 lines of comments per line of code
> > on the average.  IMO the readability comes from good design
> > and good commenting.
> > 
> > But in the spirit of Dan's post, you have asked a good question:
> > why the |. ?  There is one performance reason and one 
> functional> reason.
> > 
> > And, -.~ here does not do list-.table, but is repeated
> > list-.list .
> > 
> > Just for fun, I wrote a function header as I would have if
> > this were a verb in my library:
> > 
> > NB. Monad.  Calculate the list of primes less than y+2
> > NB. y is a scalar
> > NB. Result is the list of primes < y+2, in ascending order
> > NB. We create the list 1..y+1; then we reverse the list to get
> > NB. y+1..1, and create the multiplication table of that with the
> > NB. list 2..y+2.  The last item of the table is the list
> > NB. of candidate primes, and the other items of the table
> > NB. are multiples of those numbers.  We then remove each
> > NB. set of multiples from the list of candidates.  This 
> is a
> > NB. sieve but we are sieving with all multiples, not just
> > NB. multiples of primes.
> > NB.
> > NB. The table goes from big numbers to small numbers so that
> > NB. the list of candidates is thinned out as quickly as
> > NB. possible.
> > 
> > Henry Rich
> > 
> > > -----Original Message-----
> > > From: [EMAIL PROTECTED] 
> > > [mailto:[EMAIL PROTECTED] On Behalf Of John Randall
> > > Sent: Friday, April 04, 2008 9:19 PM
> > > To: General forum
> > > Subject: RE: [Jgeneral] How readable is J?
> > > 
> > > Henry Rich wrote:
> > > > -.~/@(|. */ >:)@:>:@:i.
> > > >
> > > 
> > > This is obviously a shorter solution to the problem, but I 
> > > would argue it
> > > is less readable than Dan's original posting, even though it 
> > > is readable
> > > in the broader sense.
> > > 
> > > I tend to favor @: over unbroken trains, and I think that 
> > > helps in your
> > > posting.  There are a couple of points that will throw 
> a 
> > reader.> 
> > > 1. We are calculating all products of a list with 
> > itself.  The |. is
> > > obviously lining them up in some order, but why?
> > > 
> > > 2. While using -. is good, I bet most readers do not know 
> the 
> > > ranks (0 _
> > > _) and then (list)-.(table) could be anyone's guess.
> > > 
> > > I think Dan's original question was not completely 
> > formed.  If you are
> > > talking about readability, you need to know the 
> > audience.  I 
> > > believe the
> > > important audience is intermediate J users, who can write explicit
> > > functions and do some simple tacit programming, and who want 
> > to get
> > > further.
> > > 
> > > Best wishes,
> > > 
> > > John
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to