Vocabulary

classes.algebra.private

Inputs

Outputs

Definition

classes.algebra.private

Inputs

first | an object |

second | an object |

Outputs

? | an object |

Definition

: (class<=) ( first second -- ? )

2dup eq?

[ 2drop t ] [

[ normalize-class ] bi@ 2dup superclass<=

[ 2drop t ] [

{

{ [ 2dup eq? ] [ 2drop t ] }

{ [ dup empty-intersection? ] [ 2drop t ] }

{ [ over empty-union? ] [ 2drop t ] }

{

[ 2dup ~quotation~ both? ]

[ anonymous-complement<= ]

}

{

[ over anonymous-union? ]

[ left-anonymous-union<= ]

}

{

[ over nontrivial-anonymous-intersection? ]

[ left-anonymous-intersection<= ]

}

{

[ over nontrivial-anonymous-complement? ]

[ left-anonymous-complement<= ]

}

{ [ dup class-members ] [ right-union<= ] }

{

[ dup anonymous-union? ]

[ right-anonymous-union<= ]

}

{

[ dup anonymous-intersection? ]

[ right-anonymous-intersection<= ]

}

{

[ dup anonymous-complement? ]

[ class>> classes-intersect? not ]

}

[ 2drop f ]

} cond

] if

] if ;

2dup eq?

[ 2drop t ] [

[ normalize-class ] bi@ 2dup superclass<=

[ 2drop t ] [

{

{ [ 2dup eq? ] [ 2drop t ] }

{ [ dup empty-intersection? ] [ 2drop t ] }

{ [ over empty-union? ] [ 2drop t ] }

{

[ 2dup ~quotation~ both? ]

[ anonymous-complement<= ]

}

{

[ over anonymous-union? ]

[ left-anonymous-union<= ]

}

{

[ over nontrivial-anonymous-intersection? ]

[ left-anonymous-intersection<= ]

}

{

[ over nontrivial-anonymous-complement? ]

[ left-anonymous-complement<= ]

}

{ [ dup class-members ] [ right-union<= ] }

{

[ dup anonymous-union? ]

[ right-anonymous-union<= ]

}

{

[ dup anonymous-intersection? ]

[ right-anonymous-intersection<= ]

}

{

[ dup anonymous-complement? ]

[ class>> classes-intersect? not ]

}

[ 2drop f ]

} cond

] if

] if ;

This documentation was generated offline from a
`load-all`

image. If you want, you can also
browse the documentation from within the UI developer tools. See
the Factor website
for more information.

Factor 0.100 x86.64 (2268, heads/master-b642bd1815, May 29 2024 11:57:55)