Конечно, вы можете реализовать каталитические числа в haskell (и я думаю, что ml-family достаточно мощный)!
Но я думаю, что это не тот ответ, который вы искали. Поэтому я надеюсь, что вы знакомы с основным синтаксисом haskell о каталитических числах как функциях catalan :: Int -> Int
любая серия натуральных чисел является такой функцией (хорошо для небольших индексов). Но поскольку каталитические числа растут довольно быстро, я выберу для кодомена нашей функции тип Integer
s (= произвольные большие интегральные числа).
catalan :: Int -> Integer
catalan 0 = 1
catalan n = sum [ ?catalan magic? | i <- [1..n]]
Я знаю, что я почти решил проблему, но есть еще каталанская магия ;-) вам нужно делать самостоятельно.
Но прежде, чем я остановлюсь несколько предостережений
- этого вариант расчета каталонских чисел далеко от оптимального или эффективного
- случае отрицательных значений входных не заботятся.
Вы еще что-нибудь попробовали? –
@OliCharlesworth: Я даже не знаю с чего начать. – Kuai
Но в равной степени мы даже не начинаем помогать вам. Пожалуйста, будьте более конкретными в том, что в настоящее время блокирует вас. –