SuperAPI AI 工具集

lisper

测试与质量

查看项目

更新于 10-16 05:01

技能介绍

用途:为 Lisp 家族语言提供编写、审查、调试与配置支持,覆盖 Common Lisp、Scheme、Racket、JVM Clojure、ClojureScript、Emacs Lisp、Hy、Fennel、Janet 等方言。核心原则是先识别方言与实现,再应用对应惯用法,因为共享括号不代表共享求值规则、库或工具链。

主要能力:按证据路由到对应指导,例如依据 .clj/.cljs/.cljc、deps.edn、project.clj、shadow-cljs.edn 识别 Clojure/ClojureScript;依据 bb.edn、nbb.edn 识别 Babashka/nbb;依据 CHICKEN 导入、eggs、csi、csc 识别 CHICKEN Scheme;依据 .rkt、#lang、info.rkt 识别 Racket;依据 .lisp、.cl、.asd、defpackage 识别 Common Lisp;依据 .el 识别 Emacs Lisp;依据 .hy、.fnl、.janet 分别识别 Hy、Fennel、Janet。对 Clojure/ClojureScript 的聚合、归约、空集合或分区并行汇总,可参考 Monoids,先检查结合律与单位元。

使用方式:检查源码头部、导入、项目清单与文档化运行命令;扩展名本身不足以确定实现,证据不足且影响重大时应询问目标运行时。Scheme 可借助 get.scheme.org 了解各实现报告的 R5RS、R6RS、R7RS 支持,并遵循项目既有实现与标准报告。Common Lisp 参考 HyperSpec 与实现手册(如 SBCL 手册),保留既有 ASDF 系统、包、依赖与测试约定。跨方言移植时确认读取器语法、引用、求值顺序、真值、相等性、作用域、可变性与数值行为,翻译意图而非机械替换函数名。

适用场景:多方言 Lisp 项目的开发、审查、调试、配置与移植;涉及递归列表/树、Common Lisp 集合与宏、状态与延迟求值、可移植 Scheme 等任务时,可查阅书架中相关章节。

限制:不假定某 Scheme 的库或导入形式可移植;不依赖可移植的尾调用消除;不用 eval 解析不可信数据,并单独检查读取器安全性;宏展开需用对应方言工具检查。报告时应说明实际使用的方言、实现与所做检查,区分可移植行为与实现特定假设。其他 Lisp 方言需先识别实现并查阅其语言手册,不得默认替换为 Common Lisp 或 Scheme。