A semifunctor is a homomorphism between semicategories, like a functor is a homomorphims between categories.
A semifunctor from a semicategory to a semicategory is a map sending each object to an object and each morphism in to morphism in , such that
If is a category, then need not preserve its identity morphisms, but this axiom does require that it send them to idempotents in .
A mapping of a category into another category that sends to a nontrivial idempotent endomorphism of is a semifunctor but not a functor.
More generally, recall from semicategory that the forgetful functor has a right adjoint , which sends a semicategory to its category of idempotents, or Karoubi envelope. Thus to give a semifunctor from a category to a (semi)category is the same as giving a functor from to the Karoubi envelope of (but beware that this correspondence does not hold for natural transformations).