我正在使用SICStus Prolog编写一个Dali代理,我需要将一个原子转换成一个术语,但是我不能使用atom_to_term,它是在SWI中构建的。
发布于 2013-11-23 19:22:06
使用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/2,即ISO。
对于更复杂的操作,可以使用open_codes_stream/2打开流。这需要用close/1来关闭。
https://stackoverflow.com/questions/20165720
复制相似问题