gpt4 book ai didi

prolog - 使用 read() 在 prolog 中处理输入

转载 作者:行者123 更新时间:2023-12-02 05:34:13 26 4
gpt4 key购买 nike

我正在使用 read() 接收用户输入。我计划我的程序将接受以下形式的输入

a,b,c,d,e

然后我会将其转换为元素列表。但是在序言中做测试我得到了这个

26 ?- read(X).
|: abc,def,ghi,jkl.
X = (abc, def, ghi, jkl).

我不确定,但这是否返回一个结构?我该怎么做才能将其转换为列表?

最佳答案

(abc, def, ghi, jkl) 是一个带有 functor ',' 和 arity 2 的术语。您可以使用术语检查谓词,如 (=..)/2, functor/3, arg/3 等来分解它,或者试试 write_canonical/1:

?- T = (abc, def, ghi, jkl), write_canonical(T).
','(abc,','(def,','(ghi,jkl)))
T = (abc, def, ghi, jkl).

要将此类元组转换为列表,您可以使用 DCG:

tuple_list((A,B)) --> !, tuple_list(A), tuple_list(B).
tuple_list(A) --> [A].

例子:

?- T = (abc, def, ghi, jkl), phrase(tuple_list(T), Ls).
T = (abc, def, ghi, jkl),
Ls = [abc, def, ghi, jkl].

关于prolog - 使用 read() 在 prolog 中处理输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11926144/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com