文件示例17 Mar 2025 | 阅读 2 分钟 示例 1在下面的程序中,我们定义了一个 readterms 谓词。这个谓词用于从给定的文件中读取前四个术语。 它将这些术语输出到另一个指定的文件中,每行一个。 假设 textfile.txt 包含以下三行内容 将使用 readterms 生成以下输出。 以上创建了一个包含四行文本的文件。 以上表明,就其范围而言,readterms 的定义是正确的。由于最后两个术语,即 seen 和 told,当前输入流和当前输出流设置为用户。如果一个大型程序将 readterms 用作子目标,并且当调用当前输入流和当前输出流时,它不一定是两个用户,那么上述定义就会出现问题。 当我们评估目标 readterms 时,为了将原始输入和输出流恢复为最后一步,它成为了一个良好的编程实践。在规则的主体中,我们可以使用 see(P) 和 seeing(P) 来实现输入。 我们将这些谓词放在其他术语之前和之后。在开始时,P 绑定到当前输入流名称。在最后,它将当前输出流重置为 P。 在规则的主体中,我们可以使用 tell(X) 和 telling(X) 来实现输出。 我们将这些谓词放在其他术语之前和之后。在开始时,X 绑定到当前输出流名称。在最后,它将当前输出流重置为 X。 根据上述约定,下面描述了 readterms 的修订定义 示例 2为了复制字符输入,我们定义了一个 copychars 谓词,该谓词在用户的终端上,直到输入字符 ! 时才复制到指定的文件中。 在以下程序中,当前输入和输出流的值由 copychars 保存和恢复。 copy_character 任务被保留,该任务以与 Example of using characters 的 Output and Input characters 的第一个示例中的 readin 相同的方式递归定义。 以下方式使用 copychars 这会将 javatpoint 字符放置在 myfile.txt 文件中。 下一主题Prolog 中的循环 |
我们请求您订阅我们的新闻通讯以获取最新更新。