如何解决如何使用持久性库在 swi-prolog 中持久化自定义或非平凡数据类型?
我想使用持久性库 (https://www.swi-prolog.org/pldoc/man?section=persistency) 持久化我的 prolog 数据库。
:- module(model,[ campament/5
]).
:- use_module(library(persistency)).
:- persistent
campament(name:atom,date_from:date,date_to:date,ubication:text,description:text).
此定义与 date
数据类型 (https://www.swi-prolog.org/pldoc/man?section=timedate) 有关,该数据类型不存在于 persistent/1
(https://www.swi-prolog.org/pldoc/man?section=error ).
因此,当我尝试保留此子句时,出现错误:
?- use_module(model).
?- model:bd('data.db').
?- parse_time('20180720',iso_8601,From),| parse_time('20180729',To),| model:assert_campament('My campament',From,To,'there','nothing').
ERROR: type `date' does not exist
ERROR: In:
ERROR: [15] throw(error(existence_error(type,date),_37572))
ERROR: [11] model:assert_campament('My campament','nothing') at /home/xxx/model.pl:9
ERROR: [9] <user>
ERROR:
ERROR: Note: some frames are missing due to last-call optimization.
ERROR: Re-run your program in debug mode (:- debug.) to get more detail.
如何持久化 date
之类的类型?在 must_be/2
(https://www.swi-prolog.org/pldoc/doc_for?object=persistent/1) 中,可能的类型之一是:
...
any
任何术语
type
项是有效的类型规范
...
问候。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。