<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _do_denormalize (version_tuple):
 """separate action function to allow for the memoize decorator. Lists, the most common thing passed in to the 'denormalize' below are not hashable. """

    version_parts_list = []
    for parts_tuple in itertools.imap(None,*([iter(version_tuple)]*4)):
        version_part = ''.join(fn(x) for fn, x in
                               zip(_denormalize_fn_list, parts_tuple))
        if version_part:
            version_parts_list.append(version_part)
    return '.'.join(version_parts_list)