Most languages are. IMHO, the best language for writing a compiler or interpreter is Prolog.
The ML family and Haskell are good for writing compilers because sum types and pattern matching lend themselves well to ASTs and symbolic manipulation. OCaml and Haskell have been used for real-world language projects (OCaml is used to implement OCaml, Coq, Haxe, Hack, and was used to implement the original version of Rust, and Haskell is used to implement GHC, Elm, PureScript, Agda, and Idris.). I'm making a programming language in OCaml, and I quite like the experience. I've never used Prolog, though.
Haskell was also used for Clash, Futhark, Egison, and the Curry frontend.
I think there are others written in OCaml that I may be forgetting.
I've used Haskell before, my understanding is that anything outside of the ML family is needlessly shooting yourself in the foot.
Why you'd try to write a compiler in a language that deliberately cripples sum types (Go) is beyond me.