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, сохранить ее в файл и воссоздать ту же структуру данных из файла, чтобы я мог создать ее однажды, и сделать больше с ним следующее, когда пользователи (я) взаимодействуют с моей программой.