<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def capitalize( full_name, articles=None, separator_characters=None, ignore_worls=None, ):
 """Returns the correct writing of a compound name, respecting the first letters of the names in upper case."""

    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)