You need to double quoted quotes:
fib3=: 13 :' ". }:, ((y,5)$''(fib2''),"1 ('' '',"1 '' '',"1
":,.>:i.y),"1 ''),'''
See also Daved Lambert's message, though.
Thanks,
--
Raul
On Mon, Feb 27, 2017 at 5:01 AM, Linda A Alvord <[email protected]> wrote:
> I like fib2 and things were going well but I hit a snag:
>
> ]W=:*i.2 2
> 0 1
> 1 1
> mp=:+/ . *
> fib2=:3 : '{. W&mp^:y 0 1'
> ". }:, (14 5$'(fib2'),"1 (' ',"1 ' ',"1 ":,.>:i.14),"1 '),'
> 1 1 2 3 5 8 13 21 34 55 89 144 233 377
>
> fib3=: 13 :' ". }:, ((y,5)$'(fib2'),"1 (' ',"1 ' ',"1 ":,.>:i.y),"1 '),''
> |domain error: fib2
> | {.W&mp ^:y 0 1
>
> It doesn't like the fact that that the fib2 should still be just letters.
>
> It was fun anyway. Linda
> -----Original Message-----
> From: Programming [mailto:[email protected]] On Behalf
> Of Cliff Reiter
> Sent: Sunday, February 26, 2017 2:27 PM
> To: [email protected]
> Subject: Re: [Jprogramming] Explicit fib
>
> Here are a couple approaches:
> First, make a list, then take the last thing in it.
>
> fib_list=:3 : 0
> z=.0 1
> for. i.y-1 do.
> z=.z,+/_2{. z
> end.
> if. y>0 do. z else. 0 end. NB. this only used to make fib_list 0 correct
> )
>
> fib_list 10
> 0 1 1 2 3 5 8 13 21 34 55
>
> fib=:{:@fib_list
>
> fib 10
> 55
>
> fib 0
> 0
>
> Or use matrix multiply
>
> mp=:+/ . *
>
> ]W=:*i.2 2
> 0 1
> 1 1
>
> W takes one fib pair to the next one
> W mp 13 21
> 21 34
>
> fib2=:3 : '{. W&mp^:y 0 1'
>
> fib2 10
> 55
>
> NB. It even works correctly for negative integers
>
> fib2 _2
> _1
>
> ----------------------------------------------------------------------
> 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