functools partial usages
reduce usages
more reduce usages
simulate c-c, todo