compose-effects ( effect1 effect2 -- effect' )


Vocabulary
effects

Definition
USING: accessors arrays kernel math math.order sequences ;

IN: effects

: compose-effects ( effect1 effect2 -- effect' )
over terminated?>>
[ drop ] [
[
[ [ in>> length ] [ out>> length ] bi ]
[ in>> length ] bi* swap [-] +
] [
[ out>> length ]
[ [ in>> length ] [ out>> length ] bi ] bi*
[ [-] ] dip +
] [ nip terminated?>> ] 2tri
[ [ "x" <array> ] bi@ ] dip <terminated-effect>
] if ; inline