3

在 Prolog 原子中规范化空白字符(空格、换行符、制表符)的最佳方法是什么,例如在 SWI-Prolog 中。即我想有一个规则:

normalize_space_in_atom(+Atom1, -Atom2)

这样Atom2

  • 任何空白字符序列都变成了一个空格
  • 以非空格开头
  • 以非空格结尾
4

1 回答 1

2

SWI Prolog 提供 normalize_space/2,因此您可以如下定义谓词:

normalize_space_in_atom(A1,A2) :- normalize_space(atom(A2),A1).

我已经用 SWI Prolog 5.7.5 进行了尝试,它似乎可以工作。如果您愿意,可以添加更多错误处理。

于 2009-02-03T21:29:19.963 回答