code: def capitalize(
      full_name,
      articles=None,
      separator_characters=None,
      ignore_worls=None,
  ):
      
      if articles is None:
          articles = _ARTICLES
      if separator_characters is None:
          separator_characters = _SEPARATOR_CHARACTERS
      if ignore_worls is None:
          ignore_worls = _IGNORE_WORLS
      new_full_name = full_name
      if hasattr(new_full_name, 'strip'):
          new_full_name = new_full_name.strip()
      if not new_full_name:
          return full_name
      new_full_name = deep_unicode(new_full_name)
      list_full_name = []
      start_idx = 0
      for step_idx, char in enumerate(list(new_full_name)):
          if char in separator_characters:
              list_full_name.extend(
                  [
                      _setting_word(
                          new_full_name[start_idx:step_idx],
                          separator_characters, ignore_worls,
                          articles if list_full_name else []
                      ),
                      char
                  ]
              )
              start_idx = step_idx + 1
      list_full_name.append(
          _setting_word(
              new_full_name[start_idx:],
              separator_characters, ignore_worls, articles
          )
      )
      return ''.join(list_full_name)
docs: Returns the correct writing of a compound name, respecting the
      first letters of the names in upper case.