project-euler.186: merge next/advance.
parent
700fc0367b
commit
3023f42aa4
|
@ -1,3 +1,3 @@
|
||||||
USING: project-euler.186 tools.test ;
|
USING: project-euler.186 tools.test ;
|
||||||
|
|
||||||
[ 2325629 ] [ euler186 ] unit-test
|
{ 2325629 } [ euler186 ] unit-test
|
||||||
|
|
|
@ -44,11 +44,8 @@ IN: project-euler.186
|
||||||
: <generator> ( -- lag )
|
: <generator> ( -- lag )
|
||||||
55 [1,b] [ (generator) ] map <circular> ;
|
55 [1,b] [ (generator) ] map <circular> ;
|
||||||
|
|
||||||
: advance ( lag -- )
|
|
||||||
[ [ 0 swap nth ] [ 31 swap nth ] bi + 1000000 rem ] keep circular-push ;
|
|
||||||
|
|
||||||
: next ( lag -- n )
|
: next ( lag -- n )
|
||||||
[ first ] [ advance ] bi ;
|
[ [ first dup ] [ 31 swap nth ] bi + 1000000 rem ] keep circular-push ;
|
||||||
|
|
||||||
: 2unless? ( x y ?quot quot -- )
|
: 2unless? ( x y ?quot quot -- )
|
||||||
[ 2keep rot [ 2drop ] ] dip if ; inline
|
[ 2keep rot [ 2drop ] ] dip if ; inline
|
||||||
|
|
Loading…
Reference in New Issue