Эквивалент Ocaml для let* Лиспа?

Я бы предпочел использовать 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* в Lisp, который позволяет это делать?


person mcandre    schedule 02.10.2011    source источник
comment
возможный дубликат В стиле отступов ocaml для этого типа вложенных входов   -  person mcandre    schedule 02.10.2011


Ответы (1)


Вложенные let не нуждаются во вложенных отступах, так что этого достаточно.

person mcandre    schedule 02.10.2011
comment
На самом деле let* обычно реализуется как макрос, который расширяется до вложенных let. - person Chris Jester-Young; 03.10.2011
comment
Ха. Придется отказаться от макросов. - person mcandre; 03.10.2011