История изменений
Исправление 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 ...
я не вижу.