gpt4 book ai didi

arrays - 给定一个支点,如何分解序言中的列表?

转载 作者:行者123 更新时间:2023-12-04 05:04:11 24 4
gpt4 key购买 nike

我正在做一个小项目来精益序言。我现在要做的是,给定一个句子,返回一个单词列表。所以,我正在接受一个字符数组,例如“高点和低点”,并试图将其分为“高点”和“低点”。我使用字符数组是因为我想玩弄单词本身,我不认为字符串适用于此。

这是我的代码。

get_first_word([], _, []):-
!.
get_first_word(X, Pivot, Input):-
append(X, [Pivot|_], Input),
!.

split_at([],_).
split_at(Input, Pivot):-
get_first_word(X, Pivot, Input),
writef(X),
append(X, Y, Input),
split_at(Y, Pivot).

我遇到的问题是这变成了一个无限循环。最终它会传递自己的空输入,而我的基本情况写得不够好,无法处理这个问题。我该如何解决?

最佳答案

我认为get_first_word错过了一个参数:它应该“返回”单词和其余单词,考虑到 Pivot 没有出现在输入中的可能性。

我还移动了参数以遵循传统的“开始时输入,结束时输出”。

get_first_word(Input, Pivot, Word, Rest):-
append(Word, [Pivot|Rest], Input), !.
get_first_word(Input, _Pivot, Input, []).

split_at([], _).
split_at(Input, Pivot):-
get_first_word(Input, Pivot, W, Rest),
writef(W),nl,
split_at(Rest, Pivot).

测试:
?- split_at("highs and lows", 0' ).
highs
and
lows
true .

关于arrays - 给定一个支点,如何分解序言中的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15737858/

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