Another approach,

ar =: 1 : '5!:1 <''u'''

even =: 3 : ' (,(+: - 1:)@{:) ar , (y`:6) ar' 
odd =: 3 : ' (,(+: + 1:)@{:) ar , (y`:6) ar' 
even odd even odd (+: - 1:) ar , 4 ar 
┌──────────────────────────────┬──────────────┐ 
│┌─┬──────────────────────────┐│┌─┬──────────┐│ 
││2│┌─┬──────────────────────┐│││0│7 15 29 59││ 
││ ││,│┌─┬──────────────────┐│││└─┴──────────┘│ 
││ ││ ││@│┌─────────────┬──┐││││              │ 
││ ││ ││ ││┌─┬─────────┐│{:│││││              │ 
││ ││ ││ │││3│┌──┬─┬──┐││  │││││              │ 
││ ││ ││ │││ ││+:│-│1:│││  │││││              │ 
││ ││ ││ │││ │└──┴─┴──┘││  │││││              │ 
││ ││ ││ ││└─┴─────────┘│  │││││              │ 
││ ││ ││ │└─────────────┴──┘││││              │ 
││ ││ │└─┴──────────────────┘│││              │ 
││ │└─┴──────────────────────┘││              │ 
│└─┴──────────────────────────┘│              │ 
└──────────────────────────────┴──────────────┘ 

________________________________
From: Raul Miller <[email protected]>
To: Programming forum <[email protected]> 
Sent: Tuesday, November 27, 2018 10:25 AM
Subject: Re: [Jprogramming] Recursive verbs



It's more like this, actually:

seqodd=: +: - 1:
seqevn=: +: + 1:
   (,seqevn@{:)@(,seqodd@{:)^:8]4
4 7 15 29 59 117 235 469 939 1877 3755 7509 15019 30037 60075 120149 240299

More generally, either:

a) you keep explicit track of which position in the sequence you are
generating, so you can choose between the odd or the even method, or

b) you generate the numbers in pairs

If you generate the numbers in pairs, you can rearrange things in a
variety of ways.

Thanks,

--
Raul


On Tue, Nov 27, 2018 at 7:37 AM 'Pascal Jasmin' via Programming
<[email protected]> wrote:
>
> If the verb you want is repetitive double - 1 then
>
>   5 (1 -~ +:@])^:(<@[) 4
> 4 7 13 25 49
>
> Otherwise, Mike's 2 at a time approach is the way to go.
>
> ________________________________
> From: Skip Cave <[email protected]>
> To: "[email protected]" <[email protected]>
> Sent: Tuesday, November 27, 2018 2:10 AM
> Subject: [Jprogramming] Recursive verbs
>
>
>
> How would you write an implicit or explicit recursive verb for this
>
> sequence formula?
>
>
> a1=.4
>
>
> a1 , (a2=.1-~2*a1) , (a3=.1+~2*a2) , (a4=.1-~2*a3) , (a5=.1+~2*a4) ...
>
> (an=.1(+-)~2*an-1
>
>
>
> The verb would be specified as x f y, where x is the starting integer a1,
>
> and y is the number of terms (n) - or vice versa.
>
>
> The result will be a vector n items long. Note the alternating sign in each
>
> term
>
>
>
> Example:
>
>
> 4 f 5
>
>
> 4 7 15 29 59
>
>
>
> Skip
>
> ----------------------------------------------------------------------
>
> 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