(* junk.ml *)
let flag = ref false
let get_flag = !flag
let play_cards card =
Printf.printf "%s-clause\n" (if card >= 27 && card <= 39 then "true" else "false");
(flag := if card >= 27 && card <= 39 then true else !flag);
Printf.printf "check: %B " get_flag;
その値を保持ない、私はjunk.ml
をインポートし、この出力OCamlのレフリーがutopで
val flag : bool ref = {contents = false} val get_flag : bool = false val play_cards : int -> unit = <fun>
を受けた私はplay_cards 30;;
と呼ばれ、この出力を受け取っ:
true-clause
私はget_flag
呼ばれたときに0
はしかし、私はfalse
を受けました。私はこのコードを書いている間に私が誤解しているリファレンスを使用するという概念があるのだろうかと思っていました。
私は非常に残念です。私は誤って古いコードをコピーしました。 false'のを予想されるように:私は '私は、出力は'チェックしてくださいそのバージョンで、 – stumped
@stumpedをflag'と 'hearts_broken'を置き換えるために、今、それを編集しました。 –