Новое в F #. Следующий вопрос может вообще не иметь смысла.
// an attempt at Huffman encoder
let encodeValue x y = function ...
match ((encodeValue left value), (encodeValue right value)) with
| ((true, encoded), (_, _)) -> (true, encoded + "1")
| ((_, _), (true, encoded)) -> (true, encoded + "0")
| ((false, _), (false, _)) -> (false, "")
| _ -> failwith "Error"
В реальной среде encodeValue может быть довольно дорогим. Можно (или разумно) попросить F # сначала оценить encodeValue left value
, попытаться сопоставить, а затем выполнить encodeValue right value
, когда это необходимо?