Является ли это применение абстрактных типов данных в C эквивалентным функциональному программированию? - PullRequest
0 голосов
/ 19 октября 2019

Со следующим кодом

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 вопроса, основанные на наблюдении:

  1. Это действительно то же самое, что функциональное программирование?
    1. Если да, то есть ли какие-то шаблоны из функционального программирования, которые могли бы быть доступны для реализации таким простым способом?
      Я бы хотел избежать компоновки функций с использованием указателей на функции, так как это делает код совершенно нечитаемым.
    2. Если нет, то каков здесь дифференцирующий фактор?

Код, указанный в статьях Адама Торнхилла о Узоры в C

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...