Question

Quel est le meilleur moyen pour normaliser les caractères blancs (espace, saut de ligne, onglet) dans un atome Prolog, par exemple, dans SWI-Prolog. C'est à dire. Je voudrais avoir une règle:

normalize_space_in_atom(+Atom1, -Atom2)

tel que Atom2

  • a une séquence de caractères d'espacement transformé en un espace unique
  • commence par un non-espace
  • se termine par un non-espace
Était-ce utile?

La solution

SWI Prolog fournit normalize_space / 2, et vous pouvez donc définir votre prédicat comme suit:

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

J'ai essayé cela avec SWI Prolog 5.7.5 et il semble fonctionner. Vous pouvez ajouter la gestion des erreurs si vous le souhaitez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top