one-of ( symbol1 symbol2 -- obj1/obj2 first? ) (original) (raw)

one-of ( symbol1 symbol2 -- obj1/obj2 first? )

Vocabulary
namespaces.extras

Inputs

symbol1 an object
symbol2 an object

Outputs

obj1/obj2 an object
first? an object

Definition

USING: kernel namespaces ;

IN: namespaces.extras

: one-of ( symbol1 symbol2 -- obj1/obj2 first? )
2dup [ get ] bi@ 2dup xor* over
[ [ 4drop ] 2dip ] [ one-variable-only ] if ;