У меня есть следующий код (это тест, поэтому он ничего интересного не делает)
let test k =
let rec aux = function
|0 -> 0
|z when z = 2 -> raise Exit
|_ -> aux (k-1)
in try let _ = aux k in true
with Exit -> false
В конце используется синтаксис: let _
, для меня это просто синтаксис, когда у вас нет идеи имени, которое вы можете использовать для определения своей функции.
Еще, если я сделаю следующее:
let test k =
let rec aux = function
|0 -> 0
|z when z = 2 -> raise Exit
|_ -> aux (k-1)
in try let b = aux k in true
with Exit -> false
Я получаю предупреждение типа: «переменная b не используется», я не понимаю, почему существует разница между let _
и let b
?
Например, я знаю, что при работе с типом юнитов обычно используется синтаксис: let ()
. Тем не менее, у меня нет никаких предупреждений при выполнении:
let b = print_int 2
, даже если я не использую:
let () = print_int 2
Так что особенного в let _
?
Спасибо!