На схеме, как мне сохранить записи (srfi-9) в файл (сериализовать их в файл) и снова прочитать их? - PullRequest
0 голосов
/ 28 мая 2020

Running Guile Я получаю эту ошибку: В процедуре scm_lreadr: savefile-dev.scm: 1: 4: Unknown # object: # \ <</p>

Я считаю, что это потому, что читатель Scheme не может понять как читать созданные мной пользовательские записи. Моя цель - создать кучу записей, как-то сохранить их в файл, а затем восстановить эту структуру данных. Поиск в Google «схемы сериализации данных» не оказался полезным.

Вот пример кода созданного мной диспетчера списка задач, демонстрирующего проблему:


(import (srfi srfi-9))

(define-record-type task
  (make-task title action-context)
  task?
  (title title set-title!)
  (action-context action-context set-action-context!))

(define savefile-filename "savefile-dev.scm")
(define (load-data)
  (define in (open-input-file savefile-filename))
  (set! tasks (read in))
  (close-port in)) ;; guile

(define (save-data)
  (define out (open-output-file savefile-filename))
  (write tasks out)
  (close-port out)) ;; guile

(define tasks
  (list 
   (make-task "Test task for example purposes." "computer")))
(save-data)
(load-data)

Я открыт для ответы, которые указывают мне в других направлениях, снова моя цель - просто: построить базовую структуру данных c, сохранить ее в файл и воссоздать ту же структуру данных из файла, чтобы я мог создать ее однажды, и сделать больше с ним следующее, когда пользователи (я) взаимодействуют с моей программой.

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