http://www.perlmonks.org?node_id=78832


in reply to Re: LFSR golf
in thread LFSR golf

I don't mind the departure in how you call the generating function but I'm going to disqualify this one for having the closure return "50101" instead of 0 and "51100" instead of 1.

If you were shifting the other direction, then a simple &1 at the end of the closure would solve the problem and give you a 73-character solution (not counting the "sub l{" and "}", as usual).

I'm sure this general approach can be modified such that I'd accept it but I'll leave that to you or whoever beats you to it. (:

        - tye (but my friends call me "Tye")

Replies are listed 'Best First'.
Re: 73 chars, called on a foul (Re: LFSR golf)
by Anonymous Monk on May 08, 2001 at 20:25 UTC
    Didn't know you wanted that. OK. New version (72 chars)
    sub l{ my($s,$t)=@_;sub{($s=($s.(((my$x=$s+$t)=~y/1/1/d)%9%2)))=~s/5(.)/5/;$1 +} } $x=l("50101","0022");print ($x->(),$x->(),$x->(),$x->());