gpt4 book ai didi

Haskell 中的搜索控件

转载 作者:行者123 更新时间:2023-12-02 11:48:33 26 4
gpt4 key购买 nike

假设您正在编写一个搜索指数级大或无限空间的程序:游戏、定理证明、优化等,任何您无法搜索整个空间的东西,结果的质量在很大程度上取决于选择哪些部分它可以在可用资源中进行搜索。

在 Eager 语言中,这在概念上很简单:该语言允许您指定计算顺序,并使用它来控制首先计算搜索空间的哪些部分。 (在实践中,它往往会变得困惑和复杂,因为推理控制的代码布局与问题定义混合在一起,这是我对用惰性语言实现这一点的方法感兴趣的原因之一。但它是概念上很简单。)

在像 Haskell 这样的惰性语言中,你不能那样做。我可以想到两种方法:

  1. 编写的代码取决于您正在使用的当前版本的编译器所选择的确切评估顺序以及您正在使用的优化标志,以便事情最终以正确的方式发生命令。这似乎可能会导致可维护性问题。

  2. 编写用于编写代码的代码,具体来说,编写将问题定义与一组启发式方法一起转换为急切语言中的一系列指令的代码,该指令指定了应该完成的事情的确切顺序。如果您愿意支付前期费用,这似乎是有好处的。

还有其他推荐的方法来做这种事情吗?

最佳答案

使用惰性语言执行此操作的典型方法是将搜索空间定义为(可能是无限的)数据结构,然后编写您希望用来单独遍历该结构的任何策略。这样,您就可以控制所使用的策略,但它与问题定义是分开的。

关于Haskell 中的搜索控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6635788/

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