LINUX.ORG.RU

История изменений

Исправление monk, (текущая версия) :

я к тому, что для этого тебе придется добавить 1 поле в твои структуры

На Си так часто делают. В смысле для каждого списка отдельные структуры для узлов списка.

То есть в рамках этого языка ничего плохого в

typedef struct compose3_int_functor ....

int compose3_call(compose3_int_functor *this, int x) {
  return CALL(this->f, CALL(this->g, CALL(this->h, x)));
}

int_function compose3(int_function f, int_function g, int_function h) ....

typedef struct plus_int_functor ...

я не вижу.

Исходная версия monk, :

я к тому, что для этого тебе придется добавить 1 поле в твои структуры

На Си так часто делают. В смысле для каждого списка отдельные структуры для узлов списка.

То есть в рамках этого языка ничего плохого в

typedef struct compose3_int_functor ....

int compose3_call(compose_int_functor *this, int x) {
  return CALL(this->f, CALL(this->g, CALL(this->h, x)));
}

int_function compose3(int_function f, int_function g, int_function h) ....

typedef struct plus_int_functor ...

я не вижу.