Я пытаюсь написать рекурсивную функцию, которая принимает список и целое число в качестве параметра, где список является полиномом, т. Е. (Val P = [5.0, 4.0, 0.0, 1.0] = x ^ 3 + 4x - 5 ) и целочисленный параметр равен x, т. е. x = 2, поэтому f (2) = x ^ 3 + 4x - 5. Вот что я дошел до этого ...
val P = [5.0, 4.0, 0,0, 1,0]; val a = 2;
fun eval(nil, a) = 0.0
| eval(x::xs, a:real) =
x + (eval(xs, a) * a)
eval(P, a);
после запуска кода выдает эту ошибку: stdIn: 22.4-24.11 Ошибка: оператор не является оператором функции [несоответствие типов]: действительный в выражении: (eval ( xs, a) * a) eval
способ, которым рекурсия "предполагает" работать, - это P = a + Qx, где P - исходный список, a - x в x :: xs, а Q - xs и x - это целочисленный параметр, который был передан. Любая помощь приветствуется. Спасибо !!