shuffle: Simpler definition imo.
parent
8dd67e0741
commit
7780a48c83
|
@ -1,16 +1,15 @@
|
||||||
! Copyright (C) 2007 Chris Double, Doug Coleman.
|
! Copyright (C) 2007 Chris Double, Doug Coleman.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors assocs combinators effects.parser
|
USING: accessors assocs combinators effects.parser fry
|
||||||
generalizations sequences.generalizations hashtables kernel
|
generalizations kernel macros make sequences
|
||||||
locals locals.backend macros make math parser sequences ;
|
sequences.generalizations ;
|
||||||
IN: shuffle
|
IN: shuffle
|
||||||
|
|
||||||
MACRO: shuffle-effect ( effect -- )
|
MACRO: shuffle-effect ( effect -- )
|
||||||
[ out>> ] [ in>> H{ } zip-index-as ] bi
|
[ in>> H{ } zip-index-as ] [ out>> ] bi
|
||||||
[
|
[ drop assoc-size '[ _ narray ] ]
|
||||||
[ nip assoc-size , \ narray , ]
|
[ [ of '[ _ swap nth ] ] with map ] 2bi
|
||||||
[ [ at \ swap \ nth [ ] 3sequence ] curry map , \ cleave , ] 2bi
|
'[ @ _ cleave ] ;
|
||||||
] [ ] make ;
|
|
||||||
|
|
||||||
SYNTAX: shuffle(
|
SYNTAX: shuffle(
|
||||||
")" parse-effect suffix! \ shuffle-effect suffix! ;
|
")" parse-effect suffix! \ shuffle-effect suffix! ;
|
||||||
|
|
Loading…
Reference in New Issue