Horner-Algorithmus in SML? [geschlossen]

Ich versuche umzusetzenHorners Algorithmus in SML.

fun horner(lst1:real list,x:real) = 
  let
    val i = ref 1
    val result = ref (List.last(lst1))
    in
      if (lst1) = ([]:real list) then 0.0 
      else
        while (!i <= length(lst1)-1) do
          (result:=!result*x+List.nth(lst1,length(lst1)-(!i)-1);
          i := !i+1);
          !result
      end;

Nimmt als erstes Ergebnis ein {n}, den Koeffizienten von x ^ n, und wertet dann mit Hilfe von Horner ein Polynom aus.

Wertet aus als ((a {n} * x + a {n-1}) * x + a {n-2}). Die Liste enthält die Koeffizienten des Polynoms. Problem ist der Teil "if lst1 = [] .... else". Wenn Sie nur die while-Schleife verwenden, läuft das Programm gut. Aber mir fällt nichts ein, was an diesem Teil falsch ist.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage