Prolog:斜线分隔的字符串列表

时间:2021-01-24 19:15:53

标签: string list prolog

我有一个像 '/home/user/something/' 这样的字符串,我想将它转换为 ['/', 'home', '/', 'user', '/', 'something', '/']

我该怎么做?

1 个答案:

答案 0 :(得分:0)

1- s 谓词接受输入并给出最终的分割答案。

2- split_string 用于仅返回单词,因此它返回 L = ["home", "user", "something"]。请注意,我们没有 /

3- 现在我们需要添加 "/"。我们使用 addslash 谓词,在每个单词之前添加 "/"。对于最后一个 "/",它检查基本谓词并将最后一个 "/" 添加到列表中。

s(X,L1):-
    split_string(X, "/", "/", L),
    addslash(L,L1).

addslash([],["/"]).
addslash([H|T],[H1,H|L]):-
    H1="/",
    addslash(T,L).


?- s('/home/user/something/', L).
L = ["/", "home", "/", "user", "/", "something", "/"]
相关问题