Со следующим кодом
typedef struct Customer* CustomerPtr;
typedef struct Order* OrderPtr;
CustomerPtr createCustomer(const char* name, const Address* address);
void destroyCustomer(CustomerPtr customer);
void placeOrder(const CustomerPtr customer, const OrderPtr order);
функция placeOrder
зависит только от входных параметров, и если Customer
и Order
не имеют побочных эффектов, то, по-видимому,чистая функция.
У меня есть следующие 2 вопроса, основанные на наблюдении:
- Это действительно то же самое, что функциональное программирование?
- Если да, то есть ли какие-то шаблоны из функционального программирования, которые могли бы быть доступны для реализации таким простым способом?
Я бы хотел избежать компоновки функций с использованием указателей на функции, так как это делает код совершенно нечитаемым. - Если нет, то каков здесь дифференцирующий фактор?
Код, указанный в статьях Адама Торнхилла о Узоры в C