split s (Root x lst rst)
| s < x = let (nlt, nrt) = split s lst in
(nlt, Root x nrt rst)
Может кто-нибудь объяснить эту строку? Я действительно не получаю часть let
.
Я пробовал думать об этом, я понятия не имею, правильно ли я понял:
мы связываем (nlt, nrt)
с результатом split s lst
; и split s lst
будет (nlt, Root x nrt rst)
Это что?
Здесь полный код:
split :: Ord a => a -> Tree a -> (Tree a, Tree a)
split _ Empty = (Empty, Empty)
split s (Root x lst rst)
| s < x = let (nlt, nrt) = split s lst in
(nlt, Root x nrt rst)
| s > x = let (nlt, nrt) = split s rst in
(Root x lst nlt, nrt)