Нормализующие пробелы в атомах Пролога - PullRequest
3 голосов
/ 04 февраля 2009

Каков наилучший способ нормализации пробельных символов (пробел, новая строка, табуляция) в атоме Пролога, например, в SWI-Пролог. То есть Я хотел бы иметь правило:

normalize_space_in_atom(+Atom1, -Atom2)

такой, что Atom2

  • имеет любую последовательность пробельных символов, превращенную в один пробел
  • начинается с не пробела
  • оканчивается не-пробелом

1 Ответ

2 голосов
/ 04 февраля 2009

SWI Prolog предоставляет normalize_space / 2, поэтому вы можете определить свой предикат следующим образом:

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

Я пробовал это с SWI Prolog 5.7.5, и, похоже, он работает. Вы можете добавить больше обработки ошибок, если хотите.

...