gpt4 book ai didi

testing - 测试序言程序的更快方法

转载 作者:行者123 更新时间:2023-11-28 19:50:58 25 4
gpt4 key购买 nike

我是 Prolog 的新手,从终端启动 prolog 解释器,输入 consult('some_prolog_program.pl'),然后测试你刚写的谓词的任务非常耗时,有没有办法运行加速开发的脚本测试?

例如,在 C 中,我可以编写一个 main,我将在其中使用我定义的函数,然后我可以执行:

制作&&./a.out

为了测试代码,我可以用 Prolog 做类似的事情吗?

最佳答案

  1. 您可以让解释器始终打开,然后重新编译文件。

  2. 您可以在编译文件后自动运行谓词:

    :- foo(4,2).

    当在文件中遇到该行时,这将运行 foo(4,2)

  3. 启动(大多数)Prolog 解释器时可以使用一些标志,这些解释器允许您编译文件和运行谓词(查看手册页)。这样你就可以制作一个 Bash 脚本。以下将引用 file.pl 并使用 SWI-Prolog 运行 foo/0:

    #!/bin/sh
    exec swipl -q -f none -g "load_files([file],[silent(true)])" \
    -t foo -- $*

    此谓词将统一参数与您在命令行中提供的标志列表:

    current_prolog_flag(argv, Arguments)

    但除非您要运行大量测试,否则我不认为编写所有这些额外的代码会更快。

就我个人而言,我真的很喜欢在有或没有跟踪的情况下随时测试任何谓词的灵 active (参见 trace/0),而无需编写额外的代码来调用它们(与 C 不同)。

附言关于在不离开解释器的情况下重新加载文件:如果您使用了动态谓词或全局变量,您可能会遇到一些问题;你将不得不做一些清洁工作。

关于testing - 测试序言程序的更快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8294703/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com