5 ms·
Dup is very interesting to me. Does that mean that in Nim all functions will be impure by default, and that it's considered idiomatic to modify the input? I g
by iimblack 7y ago
Dup is very interesting to me. Does that mean that in Nim all functions will be impure by default, and that it's considered idiomatic to modify the input? I guess it's nice that they're trying to make behavior consistent. It just seems like the opposite of the recent directions I've seen other languages take.
- jrhurst 7y agoI haven't played with nim for a few months, but only parameters with var will get mutated. I suspect you want to use someone else's cursed function and don't want to poison your blessed code
- iimblack 7y agoI see. I know nothing about Nim but I do see in their example they used var when declaring the function. This way seems like it's hidden to the consumer of the function but hopefully editor tooling helps with this.
- juki 7y agoYou have to declare the variable as `var` as well, eg. var arr1 = [4, 2, 3, 6] sort arr1 # Doesn't work let arr2 = [4, 2, 3, 6] sort arr2 You'll get a warning about the latter from the compiler (and nimsuggest for editors).
- treeform 7y agoMutating in place is often times faster and is more straightforward. I do feel Nim embraces mutation more than other recent languages.