 This transformation is the process now known as currying.All "ordinary" functions that might typically be encountered in mathematical analysis or in computer programming can be curried.However, there are categories in which currying is not possible; the most general categories which allow currying are the closed monoidal categories.