gpt4 book ai didi

go - 在 Go 中解析 s 表达式

转载 作者:IT王子 更新时间:2023-10-29 01:42:37 28 4
gpt4 key购买 nike

如果您不熟悉,这里是 lis.py 的链接:http://norvig.com/lispy.html

我正在尝试在 Go 中实现一个微型 lisp 解释器。我受到 Peter Norvig 在 Python 中的 Lis.py lisp 实现的启发。

我的问题是我想不出一种比较有效的方法来解析 s 表达式。我想到了一个计数器,当它看到一个“(”时它会增加 1,当它看到一个“)”时它会减少。这样,当计数器为 0 时,您就知道您已经获得了一个完整的表达式。

但这样做的问题是,这意味着您必须对每个表达式进行循环,这会使解释器对于任何大型程序来说都非常慢。

任何替代想法都会很棒,因为我想不出任何更好的方法。

最佳答案

Rosetta 代码中有一个用 Go 实现的 S 表达式解析器:

S-expression parser in Go

它可能会让您了解如何解决问题。

关于go - 在 Go 中解析 s 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31302815/

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