2016-05-23 9 views
0

私はコードで日付と時刻を使用したいので、opamを使用してCalendar Libをロードしました。私はカレンダーdays_in_month方法はdate -> intの型シグネチャを持って見ることができる限りocaml型定義からのバインドされていないコンストラクタ型のエラー

open CalendarLib 

type datefun = date -> int 

let run_datefun (f : datefun) (d : date) = (f d) 

let() = 
    let mydate = make 2016 5 23 in 
    printf "Day of week = %i" run_datefun days_in_month mydate 

:私は、問題(example.ml)を示すコードの簡単な部分を持っています。

私がしようとすると、このコード(corebuild -pkg calendar example.byte)私は次のエラーを取得するコンパイル

File "example.ml", line 3, characters 15-19: 
Error: Unbound type constructor date 

コンパイラのように私には思えるdate型の日付のコンストラクタを探しています。

私は間違っていますか?

答えて

2

あなたが使用したい機能やデータ型はDate moduleの内側にあるので、我々は(私も出力フレーズを書き換えるの自由を取り、行方不明括弧を挿入した)を取得してコードを言い換え:

open CalendarLib 

type datefun = Date.t -> int 

let run_datefun (f : datefun) (d : Date.t) = (f d) 

let() = 
    let mydate = Date.make 2016 5 23 in 
    Printf.printf "# of days in current month = %i\n" (run_datefun Date.days_in_month mydate) 

少しテスト(ところで、あなたはこのためcorebuildは必要ありません):

$ ocamlbuild -pkg calendar example.ml example.byte 
Finished, 3 targets (3 cached) in 00:00:00. 

$ _build/calendar.byte 
# of days in current month = 31 
関連する問題