4

我正在使用 SICStus Prolog 编写 Dali 代理,我需要将原子转换为术语,但我无法使用atom_to_termSWI-Prolog 中内置的

4

1 回答 1

4

使用library(codesio)

| ?- use_module(library(codesio)).
yes
?- set_prolog_flag(double_quotes,codes).
true.
| ?- read_from_codes("a(X,Y).",T).     

T = a(_A,_B) ? yes
| ?- read_term_from_codes("a(X,Y).",T,[variable_names(VN_list)]).
T = a(_A,_B),
VN_list = ['X'=_A,'Y'=_B] ?

除此之外,您还需要atom_codes/2ISO。

对于更复杂的操作,您可以使用open_codes_stream/2. 需要用close/1.

于 2013-11-23T19:22:06.003 回答