commit 1914d5c691ba5b6038b1ce617bb57f8d45049db2 Author: Lucas Date: Thu Apr 9 14:56:44 2026 +0200 intro.c diff --git a/functional_market/Fundamentals/intro.c b/functional_market/Fundamentals/intro.c new file mode 100644 index 0000000..b86ad98 --- /dev/null +++ b/functional_market/Fundamentals/intro.c @@ -0,0 +1,50 @@ +#include "intro.h" +#include +#include +#include + +int compute(int input, int (*executor)(int)) +{ + + return executor(input); +} + +void isa(void){ printf("Hello Isabelle!\n");} +void idky(void){ printf("I don't know you!\n");} +void bla(void){ printf("Good night Blathers!\n");} +void tom(void){ printf("Hi Tom Nook.\n");} +void res(void){ printf("How are you doing Mr. Resetti?\n");} + + +void (*greet(char *name)) (void) +{ + if(!name) return idky; + + if (strcmp(name, "Isabelle") == 0) return isa; + else if (strcmp(name, "Tom Nook") == 0) return tom; + else if (strcmp(name, "Blathers") == 0) return bla; + else if (strcmp(name, "Mr. Resetti") == 0) return res; + else return idky; +} + +/* +int next(int n) +{ + return n + 1; +} + + +#include +int main(void) +{ + int n = 3; + printf("compute(%d, &next) = %d\n", n, compute(n, &next)); +} +*/ +/* +int main(int argc, char *argv[]) +{ + (void)argc; + (*greet(argv[1]))(); +} +*/