Я бы лучше использовал let ... and ... and ... in
, чем вложенные let
, когда это возможно, но нормальный синтаксис let не допускает этого для выражений, которые зависят друг от друга.
Не допускается:
let encrypt password =
let seed = int 16
and keys = xlat seed (length password)
and plaintext = map code (explode password) in
map2 logxor plaintext keys
Имеет ли OCaml эквивалент let*
Лиспа, что позволяет это?