История изменений
Исправление MOPKOBKA, (текущая версия) :
Но, что насчёт побочных эффектов? Как объяснить смысл и разницу побочных эффектов на примере языка, где, по сути, всё из этих же самих побочных эффектов состоит.
Я вот недавно пример с композицией на С писал:
#include <stdio.h>
#include <stdlib.h>
#include "functional.h"
int main(int argc, char **argv) {
long r = 0, end = atol(argv[1]) + 1;
auto f = LAMBDA(long, (long x) { return x == 0; });
auto g = LAMBDA(long, (long x) { return x % 2; });
auto cond = COMPOSE(long, f, g);
for (long i = 1; i < end; ++i) if (cond(i)) r += i;
printf("%ld\n", r);
return 0;
}
Исправление MOPKOBKA, :
Но, что насчёт побочных эффектов? Как объяснить смысл и разницу побочных эффектов на примере языка, где, по сути, всё из этих же самих побочных эффектов состоит.
Я вот недавно пример с композицией на С писал:
#include <stdio.h>
#include <stdlib.h>
#include "functional.h"
int main(int argc, char **argv) {
long r = 0, end = atol(argv[1]) + 1;
auto f = LAMBDA(long, (long x) { return x == 0; });
auto g = LAMBDA(long, (long x) { return x % 2; });
auto cond = COMPOSE(long, f, g);
for (long i = 1; i < end; ++i) if (cond(i)) r += i;
printf("%ld\n", r);
return 0;
}
Исходная версия MOPKOBKA, :
Но, что насчёт побочных эффектов? Как объяснить смысл и разницу побочных эффектов на примере языка, где, по сути, всё из этих же самих побочных эффектов состоит.
Я вот недавно пример с композицией на С писал:
#include <stdio.h>
#include <stdlib.h>
#include "functional.h"
int main(int argc, char **argv) {
long r = 0, end = atol(argv[1]) + 1;
auto f = LAMBDA(long, (long x) { return x == 0; });
auto g = LAMBDA(long, (long x) { return x % 2; });
auto cond = COMPOSE(long, f, g);
for (long i = 1; i < end; ++i) if (cond(i)) r += i;
printf("%ld\n", r);
return 0;
}