v) (Node (rk, rv) l g)
| k == rk = Node (k, v) l g
| k < rk = root (put (k, v) l) g
| k > rk = root l (put (k, v) g)
where root = Node (rk, rv)
У меня тут несколько раз повторяется (k, v) который я запаттернматчил. Я могу положить (k, v) под ещё одно имя типа p, без where p = (k, v), а сразу при паттернматчинге?
В кложур, например, в примерно аналогичной ситуации можно делать
[k v :as p]
put p@(k, v) ...
Обсуждают сегодня