There are a few rule-based programming languages that were developed with artificial intelligence in mind, specifically expert systems, starting with Lisp and Prolog. But, other than that, any general purpose language is suitable. C++ is a specifically good choice for applications that involve heavy computing, and that is certainly an ostentatious property of most ML algorithms. There's one particular problem you should watch out for however: memory management. Unlike many newer languages, C++ requires you to manage your memory yourself, and this is a constant source of problems, specifically in complex programs that require a lot of memory - and this definitely includes ML. You should therefore learn about the use of smart pointers and always use those, rather than raw pointers. The sooner you get used to using them, the better: it will save you a ton of headaches in the long run! As an introduction, check the descriptions and articles on C++ sites (e. g. Dynamic memory management - cppreference.com[^]) , or you could find some articles right here, e. g. C++11 Smart Pointers[^]
GOTOs are a bit like wire coat hangers: they tend to breed in the darkness, such that where there once were few, eventually there are many, and the program's architecture collapses beneath them. (Fran Poretto)