[ocaml] Точка выхода из функции
Функция:
# let rec interval a b =
if a = b then
[]
else if a > b then
a::(interval (a - 1) b)
else
a::(interval (a + 1) b)
;;
val interval : int -> int -> int list = <fun>
# interval 20 30 ;;
- : int list = [20; 21; 22; 23; 24; 25; 26; 27; 28; 29]
# interval 30 20 ;;
- : int list = [30; 29; 28; 27; 26; 25; 24; 23; 22; 21]
# interval 30 30 ;;
- : int list = []
# interval 29 30 ;;
- : int list = [29]
Отлично, все работает так, как и задумано. Единственное, я не особенно понимаю как она работает. Вернее как она возвращает значение. По-сути, в любом случае, точка выхода из функции вот:
if a = b then
[]