Как прочитать файл и записать его в другой файл - PullRequest
0 голосов
/ 30 мая 2019

Надеюсь, все хорошо.На данный момент я планирую прочитать файл, а затем записать его в другой файл.(Эквивалент cp в OCaml, прежде чем я продолжу работу с текстом.) В настоящее время в моем коде я использую extlib для чтения файла и его вывода.Я также использую dune для создания файла в качестве исполняемого файла.Мой файл выглядит примерно так:

(* example.ml file *) 
let read_filename = "example_1.ts"
let filename = "example_2.ts"

let () =

  let text read_filename =
    let chan = open_in read_filename in
    Std.input_list chan  

  let filename = filename in 
  let text = text in 
  Std.output_file ~filename ~text 
  (* normal exit: all channels are flushed and closed *)

Когда я строю файл, используя dune build example.bc, я получаю следующую ошибку:

File "example.ml", line 11, characters 2-5:
Error: Syntax error

Я пытаюсь понять, что яделаю неправильно, но безрезультатно.Любая помощь будет более чем признательна.Спасибо.

1 Ответ

1 голос
/ 30 мая 2019

Когда я прочитал ваш код, я заметил эти строки.

  let filename = filename in 
  let text = text in 

Почему вы пишете эту строку? (* Вы можете удалить его безопасно *)

А потом я обнаружил, что ваша синтаксическая ошибка была строкой выше, вы забыли in

(* example.ml file *) 
let read_filename = "example_1.ts"
let filename = "example_2.ts"

let () =
  let text read_filename =
    let chan = open_in read_filename in
    Std.input_list chan
  in
    Std.output_file ~filename ~text 
  (* normal exit: all channels are flushed and closed *)

Правило для каждого локального определения: ключевое слово in (* локальное определение - это let внутри выражения let *)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...