(no title)
dankoncs | 4 years ago
Not only can you do OOP in C, you can also do FP, implement your own iterators and the like. (Function) pointers are your friend: https://news.ycombinator.com/item?id=28378627#28406874
And remember: FP = pure functions (no side effects) + immutable values
Currying in C is essentially taking the address of a function pointer and not calling it. You can do lazy evaluation as well. The Cky is the limit!
Yes, C++ is comfy, but you cannot really do FP with its STL. As STL containers require mutability by default.
std::transform(v.begin(), v.end(), w.begin(), [](auto const& x){ /* ... */});
Transforming the contents of v requires a buffer(!) w. (The rescue: https://github.com/arximboldi/immer)
In Python, this would be something akin to:
map(lambda x: x, t); # t being a tuple type here
This will return another tuple.
Yeah, so these are just some pointers. I just wanted to stress that C can enable your creativity once you get the essence of it.
No comments yet.