如果你是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?
Force(_,_)
改为_
? - Brian