Функция в OCaml, которая принимает целочисленный ввод и возвращает предыдущее значение, которое ему было дано - PullRequest
0 голосов
/ 24 апреля 2020

Для одного из моих назначений мне нужно написать функцию в OCaml, которая принимает целочисленный аргумент и возвращает предыдущий целочисленный аргумент. Когда функция вызывается впервые, она просто возвращает ноль.

Тип должен быть:

val prev : int -> int = <fun>

Это то, что у меня пока есть:

let prev = 
    let x = ref 0 in
    fun n ->        
        (Printf.printf "prev value: %i." !x);
        (x := n)    

;;

Я не могу выяснить, как просто вернуть предыдущее значение, а не печатать его. Я напечатал значение, чтобы убедиться, что оно обновляется, но я не понимаю, как сделать тип возвращаемого значения "int".

Любая помощь будет принята с благодарностью! Спасибо!

1 Ответ

0 голосов
/ 24 апреля 2020

Если тело функции состоит из нескольких выражений, разделенных ;, последним выражением является значение функции.

Надеюсь, это достаточно хороший совет, поскольку вы уже очень близки к что хочешь.

...