: breakage-word ( a b -- c ) + ;
-<< MACRO: breakage-macro ( a -- ) '[ _ breakage-word ] ; >>
+<< MACRO: breakage-macro ( a -- quot ) '[ _ breakage-word ] ; >>
GENERIC: breakage-caller ( a -- c )
M: double-2-rep copy-register* drop MOVAPS ;
M: vector-rep copy-register* drop MOVDQA ;
-MACRO: available-reps ( alist -- )
+MACRO: available-reps ( alist -- quot )
! Each SSE version adds new representations and supports
! all old ones
unzip { } [ append ] accumulate rest swap suffix
@ output-stream get [ stream-write ] curry _ napply
] ;
-MACRO: sprintf ( format-string -- result )
+MACRO: sprintf ( format-string -- quot )
printf-quot '[
@ _ "" nappend-as
] ;
255 /f ; inline
: >vibration ( float -- short )
65535 * >fixnum 0 65535 clamp ; inline
-MACRO: map-index-compose ( seq quot -- seq )
+MACRO: map-index-compose ( seq quot -- quot' )
'[ '[ _ execute _ ] _ compose ] map-index 1quotation ;
: fill-buttons ( button-bitmap -- button-array )
: [matches?] ( quot -- undoes?-quot )
[undo] dup infer [ true-out ] [ false-recover ] bi curry ;
-MACRO: matches? ( quot -- ? ) [matches?] ;
+MACRO: matches? ( quot -- quot' ) [matches?] ;
ERROR: no-match ;
M: no-match summary drop "Fall through in switch" ;
<PRIVATE
-MACRO: com-invoke ( n return parameters -- )
+MACRO: com-invoke ( n return parameters -- quot )
[ 2nip length ] 3keep
'[
_ npick void* deref _ cell * alien-cell _ _
rot dup [ V{ } like ] when <tag>
] if ;
-MACRO: clone-slots ( class -- tuple )
+MACRO: clone-slots ( class -- quot )
[
"slots" word-prop
[ name>> reader-word '[ _ execute clone ] ] map
{ "heth" f }
}
-MACRO: case-probas ( data -- case-probas )
+MACRO: case-probas ( data -- quot )
[ first2 [ swap 1quotation 2array ] [ 1quotation ] if* ] map 1quotation ;
: expected ( name data -- float )