SWI-Prolog选项卡完成中的字符串与原子

时间:2013-06-28 21:32:25

标签: types swi-prolog tab-completion

我在做什么

我目前正致力于创建一个SWI-Prolog模块,该模块将标签完成功能添加到swipl-win窗口。到目前为止,我实际上已经把它一次性地读取​​到一个字符的位置而不停止/返回任何东西,直到键入制表符。我还编写了一个谓词,通过在当前术语列表上使用子字符串匹配(通过current_functor/2current_arithmetic_function/1current_predicate/2等获得,返回不完整类型术语的所有可能完成[使用的谓词最终将基于上下文])。

如果你想查看我的代码,那就是here ...请记住,我不是一个Prolog大师(友情提示非常受欢迎)

注意: “嘿,到目前为止,这与任何定义的术语相匹配吗?”谓词只检查当前是否存在以子字符串开头的任何当前谓词等。最终,它将使用上下文(“插入符号位于'单词'中间吗?”)来确定子字符串在任何可能的完成中的位置。


我在想什么

目前我已经说过谓词匹配字符串(不是原子),因为我读到字符串在内存上更容易,因为它们不必像原子一样独特...... 但我不确定它是否值得如果我可能只是首先将事物转换为字符串(取决于我在该术语中的读数;我正在考虑使用with_output_to直接写入字符串),然后原子就会被创造出来。 (希望我的声音混淆。)现在我只是想决定是否使用原子或字符串。 (但不要把字符串算作原子吗?)

注意: 这很大程度上取决于我得到this question的答案,因为我将决定在这个项目中使用字符串。


我在问什么

我应该使用字符串(因此sub_string/5)或原子(因此sub_atom/5)吗?

0 个答案:

没有答案