Я использовал Standard ML как для реализации деревьев решений, так и для написания компилятора из предметно-ориентированного языка в деревья решений. Я также скомпилировал похожие деревья решений в код на языке Си.
Это действительно зависит от того, что вы хотите сделать с деревьями решений. Если вы пытаетесь сделать что-то изощренное или хотите сделать деревья решений особенно удобными для чтения и записи, я бы предложил создать язык, специфичный для домена, или встроить операторы, специфичные для домена, в Haskell или Standard ML. Если вы просто хотите начать, вы можете начать с ML (проще, чем Haskell для новичка), и это сохраняет некоторые опции на потом.
В целом, ML и Haskell очень хорошо представляют и манипулируют деревьями всех видов.
Я не могу объяснить, почему кто-то порекомендовал бы матричный язык для деревьев решений.