所以这是我的问题(概括为抽象情况)。一般是口译员。
我有一个程序需要解析输入列表,并根据其元素顺序调用一些需要修改变量的函数。函数单独定义并由(cond ) 选择。我需要更新的这 3 个变量包含有关当前情况的信息(确切地说 - 机器人位置、迷宫和机器人方向)。前一个函数的结果用于下一个函数(即更新的变量被使用)。
(define func-a ... )
(define func-b ... )
(define (main-func <maze> <orientation> <coordinates> <list with commands>)
;; here I parse the list and choose which function to call
;; output must contain (list <new-maze> <new-orientation> <new-coordinates>))
)
我可以使用哪些方案工具来更新这些变量?我考虑了几个选项:
- 使用(定义然后调用集合!(这是不好的风格,因为它不是纯函数式编程);
- 从头到尾调用函数(这不起作用:我还必须检查移动是否有效);
- 根本不要使这些变量保持不变,尝试将它们作为参数传递给每个函数;
还有其他合适的方法吗?