変更可能なデータが存
-
06-07-2019 - |
質問
私が可変データ構造の存しに行った時にアクセスすると、この奇妙な誤差
こちらは自分のコード
type vector = {a:float;b:float};;
type vec_store = {mutable seq:vector array;mutable size:int};;
let max_seq_length = ref 200;;
exception Out_of_bounds;;
exception Vec_store_full;;
let vec_mag {a=c;b=d} = sqrt( c**2.0 +. d**2.0);;
let make_vec_store() =
let vecarr = ref ((Array.create (!max_seq_length)) {a=0.0;b=0.0}) in
{seq= !vecarr;size=0};;
私はこの存のトップレベル
let x = make _ vec _store;;
してい x.size
取得しこのエラー
Error: This expression has type unit -> vec_store
but an expression was expected of type vec_store
していただきましたが問題なのでしょうか。と思いこんでいます。
おかげさ ファイサル
解決
make_vec_store
である。という時に let x = make_vec_store
, は、設定した機能するようにする場合は筆記 let x = 1
, このよう×1何 したい の呼び出しの結果をする機能です。による make_vec_store
's"の定義か ()
(としても知られる"ユニット")の引数は、どうい let x = make_vec_store ()
.
他のヒント
試x=make_vec_store()
どのフォローアップとして、また優れたanswereます。とを教えることができる例:
# let x = make_vec_store;;
val x : unit -> vec_store = <fun>
を返す機能を果たすとともに、repl伝えていきます。からご覧いただけます出力するxタイプ <fun>
を必要としないパラメータ unit
戻り値の型 vec_store
.
ここに宣言
# let x = 1;;
val x : int = 1
分かるのでこのxはint型と値が1になりました。
所属していません StackOverflow