Одно определение может быть:
mul m n = sum $ replicate m n
Здесь replicate a b
создает список, содержащий копии b, например, копия 3 5 = [5,5,5].sum
дает сумму списка, например, sum [5,5,5]
равно 15. Бинго!
Конечно, использование встроенных функций было бы обманом, так как вы могли бы написать эти функции самостоятельно?Я дам вам несколько советов:
replicate' 0 x = []
replicate' n x = x : ???
sum' [] = 0
sum' (x:xs) = ???
Как правило, это хорошая домашняя стратегия, чтобы искать предопределенные функции (например, с помощью Hoogle), чтобы решить общую проблему, и заменять эти функции одну за другой.,Это помогает разделить проблемы на управляемые шаги и дает вам бесплатное представление API Haskell.