Source: wikibot/polymorphic-recursion
= Polymorphic recursion
{wiki=Polymorphic_recursion}
Polymorphic recursion refers to a form of recursion where a function can call itself with different types of arguments at different levels of the recursion. This means that the type of the arguments (and possibly the return type) can vary across recursive calls. Polymorphic recursion is typically associated with languages that support type polymorphism, such as ML, Haskell, or Scala.