USING: alien alien.c-types alien.data assocs colors
combinators.smart continuations fry init kernel locals macros
math namespaces opengl.gl sequences sequences.generalizations
-specialized-arrays ;
+specialized-arrays words ;
FROM: alien.c-types => float ;
SPECIALIZED-ARRAY: float
SPECIALIZED-ARRAY: uint
over glEnableClientState dip glDisableClientState ; inline
: words>values ( word/value-seq -- value-seq )
- [ ?execute ] map ;
+ [ dup word? [ execute( -- x ) ] when ] map ;
: (all-enabled) ( seq quot -- )
[ dup [ glEnable ] each ] dip
: finish-table ( -- table )
table get [ [ 1 = ] map ] map ;
-: eval-seq ( seq -- seq ) [ ?execute ] map ;
+: eval-seq ( seq -- seq )
+ [ dup word? [ execute( -- x ) ] when ] map ;
: (set-table) ( class1 class2 val -- )
[ table get nth ] dip '[ _ or ] change-nth ;
GENERIC: execute ( word -- )
-GENERIC: ?execute ( word -- value )
-
-M: object ?execute ;
-
DEFER: if
: ? ( ? true false -- true/false )
M: word execute (execute) ;
-M: word ?execute execute( -- value ) ; inline
-
M: word <=>
[ [ name>> ] [ vocabulary>> ] bi 2array ] compare ;