Стоит отметить, что это выражение:
let a = b in a
эквивалентно этому выражению:
b
Если вы сделаете эту замену в своем коде, вы получите следующее:
let sentence =
(let word3 =
(let word2 =
(let word1 = word ^ "," in word1 ^ word1)
in
word2 ^ word2)
in
word3 ^ word3) ^ word
Это довольно разумный код. Это немного трудно следовать из-за вложенности. Вы вложили let ... in
так:
let a =
let b = 3 in
b * b
in
a + 7
Но вы могли бы иметь что-то более похожее на это:
let b = 3 in
let a = b * b in
a + 7
Если вы сделаете это изменение в своем коде, вы получите следующее:
let word1 = word ^ "," in
let word2 = word1 ^ word1 in
let word3 = word2 ^ word2 in
let sentence = word3 ^ word3 ^ word
Обновление
Обратите внимание, что это эквивалентно вашему коду, но не является полным выражением. Если вы хотите проверить это, добавьте это в конец:
in sentence