gpt4 book ai didi

评估用户定义函数的算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:23:41 26 4
gpt4 key购买 nike

你好,我有一些家庭作业,包括扩展 lisp 解释器。我们将构建三个具有预评估参数(例如 <= )的原语,以及三个进行自己评估的原语(例如 if )。我超越了职责范围,在这个练习的范围内创建了唯一有趣的函数:(defun) [这是定义用户函数的常见 lisp 关键字]。

我想知道我的管理用户定义函数调用的算法是否值得。

在伪代码中,它是这样的:

get list of parameters # (x y z)
get list of arguments # (1 2 3)
get body of function # (+ x (* y z))
for each parameter, arg # x
body = replace(parameter, argument, body) # (+ 1 (* y z))
# (+ 1 (* 2 z))
# (+ 1 (* 2 3))
eval(body) # 7

是否有更好的方法来实现这一点?谢谢。

编辑:replace() 是一个在 body 的子列表上递归的函数。

最佳答案

我从来没有找到更好的,没有人提出更好的建议,这个问题没有引起任何兴趣,我正在疯狂地关闭我打开的问题,所以这里是答案:

我的算法已经足够好了。

关于评估用户定义函数的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22994952/

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