Re:Lisp-Stick on a Python
by jxy on Monday November 14, 2022 @11:25PM
(#33605263)
Just in case people don't know about C. This is a short piece of code where an array is returned from a function.
Edit: alas, I've been writing too much C++. The following is correct C.
[ Parent
| on HN ]
Re:Lisp-Stick on a Python
by merlincorey on Tuesday November 15, 2022 @02:22AM
(#33606260)
Yeah, there is nothing complicated about returning a static array in C.
C is a much simpler language than many people assume -- of course, it can get really hairy and complicated especially when you need to do dynamic memory management, but that's not what the GP was asking for in this case.
> that's not what the GP was asking for in this case.
You really think that when they mentioned the dynamically allocated `Vec` in Rust (which has fixed-sized arrays) and "manual memory management" in C, what they were actually talking about was a static array?
But you need dynamic memory management for side-effect-free functional programming.
Now do an array whose size is not known at compile time.
In C99 or later you can also write it as:
Vec get_vec(void) {
return (Vec){ { 3, 2, 1, 0 } };
}
...or I would probably prefer designated init for readability: Vec get_vec(void) {
return (Vec){ .v = { 3, 2, 1, 0 } };
}