用函数生成函数