0
在此示例中,正在熱切評估get_final_answer,並且始終返回0.0。我認爲包含refs的表達式由於它們固有的可變特性而被區別對待(在這種情況下並不熱切地進行評估)。我預計它會回到7.0。在函數內部解引用ref會產生不同的結果。爲什麼?
let FinalAnswer = ref 0.0
let get_final_answer = !FinalAnswer
let rec eval_expr_fail =
FinalAnswer := 7.0
get_final_answer // fails, returns 0.0
let rec eval_expr_works =
FinalAnswer := 7.0
!FinalAnswer // works, return 7.0
如何在我更新它的塊之外的情況下解除引用FinalAnswer?
功能都值了!你的意思是「是一個浮點數,而不是一個函數」。 – petebu 2011-05-20 12:35:24