0

次のようにクラスを定義しています

    class dataframe (csv_filepath:string) =
        object
               (* Load the csv, make it square and print the first line *)
               initializer  
                    let print_first_line csv_filepath =
                        let f = Csv.square (Csv.load csv_filepath) in
                        let top_line = Csv.sub 0 0 1 (Csv.columns f) f in
                        Csv.print_readable top_line;
                        Printf.printf "\n";
        end;;

エラーメッセージを受け取る

   end;;
   ^^^
   Error: Syntax error

私はこれに何か問題があるとは思いません。私は完全に道に迷っています。何が起こっているのか知っている人はいますか?

4

1 に答える 1

1

イニシャライザで式を記述する必要があります。ここに書くのは、関数定義のトップレベルの句です。適切な初期化子は次のようになります::

initializer
  let print_first_line csv_filepath =
    let f = Csv.square (Csv.load csv_filepath) in
    let top_line = Csv.sub 0 0 1 (Csv.columns f) f in
    Csv.print_readable top_line;
    Printf.printf "\n"
  in
  (* Use print_first_line you defined *)
  print_first_line csv_filepath

または単に

initializer
  let f = Csv.square (Csv.load csv_filepath) in
  let top_line = Csv.sub 0 0 1 (Csv.columns f) f in
  Csv.print_readable top_line;
  Printf.printf "\n"
于 2013-09-17T01:48:10.157 に答える