[Jprogramming] [Jbeta] syntax for functions and modulo
Roger Hui
rogerhui.canada at gmail.com
Sun Oct 30 05:27:12 HKT 2011
In J, functions have a valence of 1 or 2.
On Sat, Oct 29, 2011 at 1:25 PM, Andrew Pennebaker
<andrew.pennebaker at gmail.com> wrote:
> Apologies for crossposting, I'm registering for the programming forum right
> now.
>
> Okay, the left argument is assigned to x, the right argument is assigned to
> y.
>
> What about functions with arity greater than 2?
>
> Lightbulb: Does J limit arity to 0, 1, or 2?
>
> Cheers,
>
> Andrew Pennebaker
> www.yellosoft.us
>
> On Fri, Oct 28, 2011 at 9:37 PM, Ric Sherlock <tikkanz at gmail.com> wrote:
>
>> 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
>> <andrew.pennebaker at gmail.com> 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 <tom at tomarneson.com> wrote:
>> >
>> >> Try
>> >>
>> >> mod3=: 3&|
>> >>
>> >>
>> >> -----Original Message-----
>> >> From: beta-bounces at jsoftware.com [mailto:beta-bounces at jsoftware.com] 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
>>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
>
More information about the Programming
mailing list