Pseudo, a Common Lisp macro for pseudocode expressions
10 months ago
- #Macro
- #Common Lisp
- #LLM
- `pseudo`宏允许在Common Lisp中嵌入伪代码表达式,由LLM将其扩展为s-表达式。
- 该宏会收集上下文信息,如词法可见变量、函数绑定/绑定符号,以及代码生成风格的指令。
- Lisp宏系统的优势在于s-表达式表示法,避免了与解析器/编译器接口的麻烦。
- 注意事项包括LLM速度慢、不可预测性、可能生成错误代码,以及不适用于生产环境。
- 依赖项包括用于提取词法可见变量的SBCL,以及`alexandria`、`cl-json`等库。
- 使用Google的Gemini开发,但可适配其他LLM;需要Google API密钥。
- 类似概念已在Julia中探索,突显了Lisp家族语言在此类集成中的优势。
- LLM在有限范围内表现更好;避免扩展以'def'开头的定义。
- 考虑过扩展到类定义,但认为若用户提供槽位名称则显得冗余。