Explicit definitions like fizzy require you to refer to the arguments
explicitly. The right argument is assigned to "y" locally within the
verb (right argument is assigned to "x")

fizzy =: 3 : 0
   if. div35 y do.
       'FizzBuzz'
   elseif. div3 y do.
       'Fizz'
   elseif. div5 y do.
       'Buzz'
   elseif. 1 do.
       > 'd' (8!:0) y
   end.
)

On Sat, Oct 29, 2011 at 2:15 PM, Andrew Pennebaker
<[email protected]> wrote:
> To get a feel for J, I'm implementing FizzBuzz, but I keep getting a control
> error.
>
> #!/usr/bin/env jconsole
>
> div3 =: 0 = 3 & |
>
> div5 =: 0 = 5 & |
>
> div35 =: div3 *. div5
>
> fizzy =: 3 : 0
>    if. div35 & do.
>        'FizzBuzz'
>    elseif. div3 & do.
>        'Fizz'
>    elseif. div5 & do.
>        'Buzz'
>    elseif. 1 do.
>        > 'd' (8!:0) &
>    end.
> )
>
> fizzy 1
>
> exit ''
>
> Cheers,
>
> Andrew Pennebaker
> www.yellosoft.us
>
> On Fri, Oct 28, 2011 at 8:39 PM, Tom Arneson <[email protected]> wrote:
>
>> Try
>>
>> mod3=: 3&|
>>
>>
>> -----Original Message-----
>> From: [email protected] [mailto:[email protected]] On
>> Behalf Of Andrew Pennebaker
>> Sent: Friday, October 28, 2011 12:54
>> To: J
>> Subject: [Jbeta] syntax for functions and modulo
>>
>> I'm trying to make a function mod3 that returns the input modulo three, but
>> my syntax is wrong. I don't see why the syntax would be any different from
>> the double example in the docs.
>>
>> $ jconsole
>>   double =: * & 2
>>   double 1
>> 2
>>   double 2
>> 4
>>   double 3
>> 6
>>   mod3 =: 3 | &
>> |syntax error
>> |   mod3=:    3|&
>>
>>
>> Cheers,
>>
>> Andrew Pennebaker
>> www.yellosoft.us
>> ----------------------------------------------------------------------
>> 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