【发布时间】:2022-10-24 17:08:04
【问题描述】:
那里!我对 lisp 语言很感兴趣,我决定创建自己的方言。这将是有史以来最简单的一个。
如您所知,lisp 中的所有内容都是一个列表(或至少是这种方言)。一个列表由一个命令组成,它出现在它的开头,也许参数是它们本身的列表。使用这些信息,我创建了以下内容。
class KList:
def __init__(self, command, args=None):
self.command = command
self.args = args
所以使用这个结构(+ 1 2) 应该转向KList('+', [KList('1'), KList('2')]) & welp 来转换它,我需要一个词法分析器&我的问题是。我怎样才能转换它?有两件事对我很重要。
- 我只是有点讨厌为一个简单的项目下载数万亿个软件包。所以一个没有词法库的解决方案。
- Lisp 是一种函数式语言,它可能看起来很奇怪,但我使用 python 进行函数式编程,所以请避免使用语句和变异变量。
【问题讨论】: