我正在尝试创建一个序言程序,它接受输入“我爱你”作为字符串,然后输出
"i love you"
"i love yo"
"i love y"
"i love "
"i love"
"i lov"
"i lo"
"i l"
"i "
"i"
我目前正在使用 SWI-Prolog,我拥有的代码如下。
sublist(S, L) :-
append(_, L2, L),
append(S, _, L2).
contains(A, B) :-
atom(A),
name(A, AA),
contains(AA, B).
contains(A, B) :-
sublist(B, A),
B \= [].
我使用以下代码来执行代码:
?- forall(contains('我爱你',X),writef("%s\n",[X])).
以下是完全如图所示生成的输出。
i
i
i l
i lo
i lov
i love
i love
i love y
i love yo
i love you
l
lo
lov
love
love
love y
love yo
love you
l
lo
lov
love
love
love y
love yo
love you
o
ov
ove
ove
ove y
ove yo
ove you
v
ve
ve
ve y
ve yo
ve you
e
e
e y
e yo
e you
y
yo
you
y
yo
you
o
ou
u
我感谢任何和所有的帮助。提前非常感谢。