我试图了解用户如何输入一个句子然后在 Prolog 中拆分成单独的单词。 例如, 用户输入这句话:“计算机由硬件组成” 我想把这句话分成:“computer”、“consists”、“of”和“hardware”
有人可以解释一下用户如何输入句子然后在 Prolog 中拆分它吗?
最佳答案
Swi-Prolog 有一个内置的谓词,这使得这很容易:
?- split_string("computer consists of hardware", "\s", "\s", L).
L = ["computer", "consists", "of", "hardware"].
据我所知,split_string(+String, +SepChars, +PadChars, -SubStrings)
中的第三个参数 +PadChars 会修剪周围的空格。
例如,在此示例中添加前导空格和尾随空格并将 +PadChars 设置为空字符串会产生:
?- split_string(" computer consists of hardware ", "\s", "", L).
L = ["", "computer", "consists", "of", "hardware", ""].
而将 PadChars 设置为“\s”会产生:
?- split_string(" computer consists of hardware ", "\s", "\s", L).
L = ["computer", "consists", "of", "hardware"].
但我不完全清楚 +PadChars 是否还有其他用途。任何人都知道任何很好的例子来澄清它吗?
关于prolog - 如何在 Prolog 中拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34532662/