i.<20 is a domain error

-- 
Raul


On Wed, Mar 5, 2014 at 4:43 PM, Bo Jacoby <[email protected]> wrote:

> Interesting, Dan, but why define  ^:(<20) meaning ^:(i.<20)  ?
>
>    (-:&(+ (2&| * >:&+:)))^:(<20)11
> 11 17 26 13 20 10 5 8 4 2 1 2 1 2 1 2 1 2 1 2
>    (-:&(+ (2&| * >:&+:)))^:(i.20)11
> 11 17 26 13 20 10 5 8 4 2 1 2 1 2 1 2 1 2 1 2
> - Bo
>
>
>
>
> Den 16:35 onsdag den 5. marts 2014 skrev Raul Miller <
> [email protected]>:
>
> And with ^:(-i.|integer) where 0 >: integer
> >
> >Of course, if you want more control you'll need to be more explicit:
> >
> >   >:^:(i:4) 5 6 7
> >1  2  3
> >2  3  4
> >3  4  5
> >4  5  6
> >5  6  7
> >6  7  8
> >7  8  9
> >8  9 10
> >9 10 11
> >
> >Also, >:^:(n) y is n+/y with n constrained to integers.
> >
> >Thanks,
> >
> >--
> >Raul
> >
> >
> >On Wed, Mar 5, 2014 at 10:10 AM, Dan Bron <[email protected]> wrote:
> >
> >> FYI, ^:(<integer) is a synonym for ^:(i.integer) where 0 < integer < _ .
> >>
> >> -Dan
> >>
> >>
> >>
> >> ----- Original Message ---------------
> >>
> >> Subject: Re: [Jprogramming] Simple Number Theory
> >>    From: "Linda Alvord" <[email protected]>
> >>    Date: Tue, 04 Mar 2014 21:46:16 -0500
> >>      To: <[email protected]>
> >>
> >>    |. f ^:(i.80)2324
> >> 2 1 2 4 8 5 10 20 40 80 53 35 23 46 92 61 122 244 488 325....
> >>
> >> Linda
> >>
> >>
> >> -----Original Message-----
> >> From: [email protected]
> >> [mailto:[email protected]] On Behalf Of Linda
> >> Alvord
> >> Sent: Tuesday, March 04, 2014 8:59 PM
> >> To: [email protected]
> >> Subject: Re: [Jprogramming] Simple Number Theory
> >>
> >>
> >> Also:
> >>
> >>    collatz=:-:&(+2&|*>:&+:)
> >>    collatz ^:(i.10)17
> >> 17 26 13 20 10 5 8 4 2 1
> >>
> >>    f=: 13 :'-: y+(2|y)*>:+:y'
> >>    f ^:(i.10)17
> >> 17 26 13 20 10 5 8 4 2 1
> >>
> >>    collatz
> >> -:&(+ (2&| * >:&+:))
> >>    f
> >> [: -: ] + (2 | ]) * [: >: +:
> >>
> >> Linda
> >>
> >>
> >> -----Original Message-----
> >> From: [email protected]
> >> [mailto:[email protected]] On Behalf Of Devon
> >> McCormick
> >> Sent: Tuesday, March 04, 2014 12:56 PM
> >> To: J-programming forum
> >> Subject: Re: [Jprogramming] Simple Number Theory
> >>
> >> "Power" is a very useful conjunction.  Here's some simple examples of
> using
> >> it:
> >>
> >>    >:10     NB. Start with the increment-by-one verb ">:"
> >> 11
> >>    >:^:99]10  NB. Now apply it 99 times to the argument "10" by using ^:
> >> 109
> >>    >:^:(99) 10  NB. Another way to distinguish the "power" arg from the
> arg
> >> to which it's applied.
> >> 109
> >>
> >>   >:^:(i.10) 10   NB. Vector arg to power shows intermediate results.
> >> 10 11 12 13 14 15 16 17 18 19
> >>
> >>    >:^:(25>]) 10  NB. Use verb (25>]) to control power...
> >> 11
> >>    >:^:(25>])^:_ ] 10  NB. Use with verb (25>]) "infinite" number of
> times
> >> 25
> >>
> >> "Infinite" power keeps applying the verb until it converges (stops
> >> changing).
> >>
> >> So, J gives you infinite power.
> >>
> >> On Tue, Mar 4, 2014 at 10:25 AM, Raul Miller <[email protected]>
> >> wrote:
> >>
> >> > It might be worthwhile taking a look at the different display forms of
> >> the
> >> > veb collatz. For example, consider the atomicrepresentation:
> >> >
> >> >    5!:1<'collatz'
> >> > +------------------------------------------------+
> >> > ¦+----------------------------------------------+¦
> >> > ¦¦"¦+------------------------------------------+¦¦
> >> > ¦¦ ¦¦+----------------------------------+¦+---+¦¦¦
> >> > ¦¦ ¦¦¦@.¦+-----------------------------+¦¦¦0¦0¦¦¦¦
> >> > ¦¦ ¦¦¦  ¦¦+-------------+¦+-----------+¦¦¦+---+¦¦¦
> >> > ¦¦ ¦¦¦  ¦¦¦0¦+---------+¦¦¦&¦+-------+¦¦¦¦     ¦¦¦
> >> > ¦¦ ¦¦¦  ¦¦¦ ¦¦cole¦colo¦¦¦¦ ¦¦+---+¦|¦¦¦¦¦     ¦¦¦
> >> > ¦¦ ¦¦¦  ¦¦¦ ¦+---------+¦¦¦ ¦¦¦0¦2¦¦ ¦¦¦¦¦     ¦¦¦
> >> > ¦¦ ¦¦¦  ¦¦+-------------+¦¦ ¦¦+---+¦ ¦¦¦¦¦     ¦¦¦
> >> > ¦¦ ¦¦¦  ¦¦               ¦¦ ¦+-------+¦¦¦¦     ¦¦¦
> >> > ¦¦ ¦¦¦  ¦¦               ¦+-----------+¦¦¦     ¦¦¦
> >> > ¦¦ ¦¦¦  ¦+-----------------------------+¦¦     ¦¦¦
> >> > ¦¦ ¦¦+----------------------------------+¦     ¦¦¦
> >> > ¦¦ ¦+------------------------------------------+¦¦
> >> > ¦+----------------------------------------------+¦
> >> > +------------------------------------------------+
> >> >
> >> >
> >> > Working inwards from the outside, we see that the top level control is
> >> the
> >> > rank adverb. Its arguments are represented as a gerund and the noun 0
> >> (the
> >> > first '0' says that this is a noun, the second is the value of the
> noun).
> >> >
> >> > The top level control in the gerund is the @. conjunction. And
> >> > http://www.jsoftware.com/help/dictionary/d621.htm says that the rank
> of
> >> @.
> >> > is determined by the rank of its right verb, which leads to your
> >> question.
> >> > But what is that right verb?
> >> >
> >> > According to the diagram, above, the right verb for @. has & as its
> top
> >> > level control. And according to
> >> > http://www.jsoftware.com/help/dictionary/d630n.htm the monadic rank
> of
> >> 2&|
> >> > is infinite.
> >> >
> >> > (Hopefully you do not consider this approach to be too tedious - or,
> if
> >> so,
> >> > hopefully you skipped down to the end and then read the last couple
> >> > paragraphs.)
> >> >
> >> > Thanks,
> >> >
> >> > --
> >> > Raul
> >> >
> >> >
> >> >
> >> > On Tue, Mar 4, 2014 at 10:07 AM, Jon Hough <[email protected]>
> wrote:
> >> >
> >> > > Thanks for all the replies.OK, I'm starting to understand more now.
> I
> >> did
> >> > > not know about agenda (@.). Well actually, I read about it in the
> >> > > jsoftware.com dictionary, but I think J is one of those things you
> >> have
> >> > > to see in action before it clicks.
> >> > > What I've gone with:
> >> > > cole =. 2&(%~) NB. even case
> >> > >  colo =. (1&+)@(3&*)
> >> > >   collatz =.cole`colo@.(2&|)"0 NB. Rank 0 lets us work on each
> element
> >> > of
> >> > > a list
> >> > >
> >> > > So my next question is how do I go about iterating this until we
> reach
> >> 1?
> >> > > Incidentally, it seems to me that | is rank 0 (right rank)
> >> > > http://www.jsoftware.com/help/dictionary/d230.htm Therefore I am
> >> puzzled
> >> > > why the verb collatz does not act on each rank 0 element of the
> noun.
> >> Why
> >> > > did I have to explicitly force its right rank to be 0?
> >> > > Regarding iterations,Bo Jacoby kindly mentioned:
> >> > >  collatz=:-:&(+2&|*>:&+:)   collatz ^:(i.10)17
> >> > > 17 26 13 20 10 5 8 4 2 1
> >> > > But I'm struggling to understand this verb. Any help explaining this
> >> > would
> >> > > be appreciated. Or help making my own collatz verb into an iterative
> >> > > function (verb).
> >> > > Regards,Jon
> >> > > > Date: Mon, 3 Mar 2014 18:59:04 -0800
> >> > > > From: [email protected]
> >> > > > To: [email protected]
> >> > > > Subject: Re: [Jprogramming] Simple Number Theory
> >> > > >
> >> > > > This might be more readable - I had some bold faced characters so
> got
> >> > > > the extra dusting of *
> >> > > >
> >> > > > Don
> >> > > >
> >> > > > collatz=:(1 0=2|])#(3*1+]),2%~]
> >> > > >
> >> > > > collatz 4
> >> > > >
> >> > > > 2
> >> > > >
> >> > > > collatz 5
> >> > > >
> >> > > > 18
> >> > > >
> >> > > > collatz _4
> >> > > >
> >> > > > _2
> >> > > >
> >> > > > collatz _5
> >> > > >
> >> > > > _12
> >> > > >
> >> > > >
> >> > > > Test for odd/even is 2|nreturning 1 for odd and 0 for even  1
> 0=2|n
> >> > will
> >> > > > return 1 0 for odd and 0 1 for even
> >> > > > The (3*1+n) and n%2 terms are a two element result vector
> >> > > >
> >> > > > if odd, 1 0 # returns the odd result and if even 0 1 #returns the
> >> even
> >> > > > result.
> >> > > >
> >> > > > In this case I started with  the basic (3*n+1),n%2vector and then
> >>  used
> >> > > > 1 0= 2|n  times this(residue is 1 for odd and 0 for even numbers)
> >> > > > the result is(1 0=2|y) # (3*1+y),y%2which works
> >> > > > I wrote this as an explicit verb s=: 13 : '(1 0=2|y)#(3*1+y),y%2'
> >> > > > and typed sto get a tacit form (1 0 = 2 | ]) # (3 * 1 + ]) , 2 %~
> ]
> >> > > > generated by J
> >> > > >
> >> > > >   attached collatz=:to the front and that was it.
> >> > > >
> >> > > > note that the y is replaced by ] and the y%2 is expressed using
> 2%~]
> >> J
> >> > > > wants the ] on the right of this operation and ~does this
> >> > > > There are other variations on this but this is the simplest I
> came up
> >> > > with.
> >> > > >
> >> > > > I classify myself as a beginner but I have an APL background and
> long
> >> > > > ago found C and relatives awkward I do think it is harder to come
> >> from
> >> > > > C/C++/Java to J  than from APL to J - the thinking is different
> To me
> >> > > > C++ is oriented towards detailed instructions for the compiler
> (much
> >> of
> >> > > > this is done by the  interpreter in  J or APL) The problem comes
> >> first
> >> > > > in J and more times than not - use of arrays can eliminate a lot
> of
> >> > if's
> >> > > > and loops.
> >> > > >
> >> > > >
> >> > > > Don Kelly
> >> > > >
> >> > > >
> >> > > > On 03/03/2014 8:30 AM, Jon Hough wrote:
> >> > > > > Beginner question again.I quick task I set myself was to write
> ONE
> >> > > ITERATION of the Collatz function for a given positive integer.
> >> > > http://en.wikipedia.org/wiki/Collatz_conjecture
> >> > > > >
> >> > > > > So my verb is supposed to do 3*n+1 if n is odd and n/2 if n is
> >> > even.In
> >> > > a more imperative/OOE based language (C/C++/Java) I could write
> this in
> >> > > less than a minute. Unfortunately, I fell at the very first hurdle
> in
> >> J.
> >> > > > > I originally wrote my tacit verb for even ints:collatz_even
> >> =.2&(%~)
> >> > > > > collatz_even 4
> >> > > > > 2
> >> > > > > This works, but I had a terrible time trying to put the
> brackets in
> >> > > the right place. I am not sure why %~ needs to be bracketed. Won't J
> >> > parse
> >> > > %~ as dyadic and "know" that the left operand is 2?
> >> > > > > Next I tried to do the case for odd n:
> >> > > > > collatz_odd =. 1&+@(3&*)   collatz_odd 3
> >> > > > > 10
> >> > > > > That seems to work ok.Now I am not sure how to do an if
> statement
> >> in
> >> > > J. In plain English I want "If n is even do collatz_even else do
> >> > > collatz_odd".The verb I wrote to test for even-ness is
> >> > > > > ones =. {:@#: NB. Finds the ones column values. 1 => odd, 0=>
> even
> >> > > > > 1 = ones 2
> >> > > > > 0
> >> > > > > So I have a test but I am not sure how to utilize this test. How
> >> > > should I go about doing:"If n is even do collatz_even else do
> >> > collatz_odd"?
> >> > > > > Thanks and regards,Jon
> >> > > > >
> >> > > > >
> >> > ----------------------------------------------------------------------
> >> > > > > For information about J forums seehttp://
> >> > www.jsoftware.com/forums.htm
> >> > > > >
> >> > > >
> >> > > >
> >> ----------------------------------------------------------------------
> >> > > > For information about J forums see
> >> http://www.jsoftware.com/forums.htm
> >> > >
> >> > >
> ----------------------------------------------------------------------
> >> > > For information about J forums see
> http://www.jsoftware.com/forums.htm
> >> > >
> >> > ----------------------------------------------------------------------
> >> > For information about J forums see
> http://www.jsoftware.com/forums.htm
> >> >
> >>
> >>
> >>
> >> --
> >> Devon McCormick, CFA
> >
> >> ----------------------------------------------------------------------
> >> For information about J forums see http://www.jsoftware.com/forums.htm
> >> ----------------------------------------------------------------------
> >> For information about J forums see http://www.jsoftware.com/forums.htm
> >> ----------------------------------------------------------------------
> >> For information about J forums see http://www.jsoftware.com/forums.htm
> >> ----------------------------------------------------------------------
> >> For information about J forums see http://www.jsoftware.com/forums.htm
> >>
> >----------------------------------------------------------------------
> >For information about J forums see http://www.jsoftware.com/forums.htm
> >
> >
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to