First place to check for libraries in general is 
[https://nimble.directory](https://nimble.directory) (Nims version of npm)

We do have this: 
[https://github.com/PMunch/nim-persistent-vector](https://github.com/PMunch/nim-persistent-vector)
 by @PMunch

Immutable data structures are possible in Nim, but I would not call it easy. 
Such structures are very difficult to optimize. Immutable structures are 
expensive!

Immutable data structures and that style of functional programming is not 
really the "strong point" of Nim. Nim is a much more low level language, where 
we care about memory and performance. It's the same reason you don't have 
immutable data structures by default in a language like Rust.

I don't want to put you off completely. Nim has some very powerful functional 
programming libraries. This one for example, is one of my favorites: 
[https://github.com/zero-functional/zero-functional](https://github.com/zero-functional/zero-functional)

In regards to translators from other languages to Nim, the biggest one is 
Py2Nim. This was used by Status to convert a complex crypto codebase to Nim 
very effectively: 
[https://github.com/metacraft-labs/py2nim](https://github.com/metacraft-labs/py2nim)

We also have nimterop, which isn't a full translator, but converts C / C++ 
header files to Nim for a better interop experience with those languages. 
[https://github.com/nimterop/nimterop](https://github.com/nimterop/nimterop)

Reply via email to