什么是可能的而不是Prolog?

时间:2011-10-25 03:25:56

标签: prolog logic boolean

我是Prolog和逻辑范式开发的新手,但我认为这可以帮助我完成我的应用程序。我的第一个疑问是我能用语言做什么。

我正在进行一些文本处理/自然语言处理,我认为我的代码在逻辑语言中比在Java中更清晰,更容易(我正在使用并将与Prolog集成)。 / p>

我现在的第一个目标是发现字符串的字符类型(字母,数字,数字等)。我有四个mais参数:hasLetter,hasDigit,hasSymbol,hasPunctuation。

使用Prolog,我可以使用一种方法determineType(),它会根据这四个属性返回类型,或者只返回单个测试,例如isDigit()isAlphabetic()等等?

1 个答案:

答案 0 :(得分:3)

每个字符的类别或“类型”是一种关系,将字符与其类型相关联。您可以使用谓词在Prolog中对其进行编码。这种谓词的有意义的名称例如是:“character_type(C,T)”。在SWI-Prolog中,查看库谓词char_type / 2和code_type / 2以获取此信息。您可以使用它们来获取角色的类型(回溯,可以生成替代解决方案)以及测试角色是否属于提供的类别。对于语言处理,您可能还会发现有用的明确子句语法(DCG)。