Стандартный ML: Как вычислить х в степени я? - PullRequest
0 голосов
/ 26 марта 2020

Я новичок в Standard ML. Я пытаюсь вычислить x в квадрате i, где x - действительное число, а i - неотрицательное целое число. Функция должна принимать два параметра, x и i

Вот что у меня есть:

fun square x i = if (i<0) then 1 else x*i;

Ошибка, которую я получаю, состоит в том, что объект case и правила не согласуются

1 Ответ

0 голосов
/ 27 марта 2020

Унарный оператор отрицания в SML не -, как в большинстве языков, а вместо ~. Вероятно, именно это и вызывает указанную вами ошибку c.

Тем не менее, существуют некоторые другие проблемы с этим кодом. L не привязан к примеру, который вы публикуете, например.

Я думаю, вы, возможно, захотите, чтобы ваша функция выглядела как

fun square (x : real) 0 = 1
  | square x i = x * (square x (i - 1))

Вы захотите вернуться в Чтобы вычислить квадрат.

...