代码之家  ›  专栏  ›  技术社区  ›  Kaarel

Prolog原子中空间特征的归一化

  •  3
  • Kaarel  · 技术社区  · 15 年前

    规范化prolog原子中的空白字符(空格、换行符、制表符)的最佳方法是什么,例如在swi prolog中。 也就是说,我想要一个规则:

    normalize_space_in_atom(+Atom1, -Atom2)
    

    这样 Atom2

    • 是否有任何空格字符序列转换为单个空格
    • 以非空格开头
    • 以非空格结尾
    1 回复  |  直到 15 年前
        1
  •  2
  •   Nelson    15 年前

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

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

    我用Swi Prolog 5.7.5尝试过这个方法,它似乎有效。如果愿意,您可以添加更多的错误处理。