Prolog 中的输入输出操作详解
1. 句子读取程序
在处理英语句子时,我们常常需要将输入的句子转换为 Prolog 原子列表。下面我们详细介绍实现这一功能的程序。
1.1 程序概述
该程序定义了一个带有一个参数的谓词 read_in
,其目的是读取终端输入的句子,并将其转换为 Prolog 原子列表。程序需要明确输入中一个单词的结束和下一个单词的开始位置。为此,程序假定一个单词可以由任意数量的字母、数字和特殊字符组成。
字母和数字与之前讨论的相同,单引号 '
和连字符 -
被视为特殊字符。此外,逗号 ,
、句号 .
、分号 ;
、冒号 :
、问号 ?
和感叹号 !
这些字符本身也构成单词。其他字符仅用于标记单词之间的空格。当出现 .
、 ?
或 !
这些单词时,句子被视为结束。大写字母会自动转换为小写字母,以确保相同的单词始终产生相同的原子。
例如,当输入 The man, who is old, saw Joe's hat.
时,程序输出 S = [the,man//,who,is,old//,saw/joe"s',hat/.']
。这里插入了额外的单引号,以明确标点符号是原子。