] [ drop f ] if ;
: dispatch-case-quot ( default assoc -- quot )
- [
- \ dup , \ integer? , [
- \ integer>fixnum-strict , \ dup ,
- dup keys [ infimum , ] [ supremum , ] bi \ between? ,
- [
- dup keys infimum , \ - ,
- sort-keys values [ >quotation ] map ,
- \ dispatch ,
- ] [ ] make , dup , \ if ,
- ] [ ] make , , \ if ,
- ] [ ] make ;
+ swap [
+ [ keys [ infimum ] [ supremum ] bi over ]
+ [ sort-keys values [ >quotation ] map ] bi
+ ] dip dup '[
+ dup integer? [
+ integer>fixnum-strict dup _ _ between? [
+ _ - _ dispatch
+ ] _ if
+ ] _ if
+ ] ;
PRIVATE>