name: Lambda演算解释器技能 description: “这是一个用于实现和理解lambda演算解释器的技能,帮助开发者掌握传值调用和传名调用评估策略,适用于函数式编程学习和实践。” version: “1.0.0” tags: [tag1, tag2, tag3] difficulty: beginner languages: [python, ocaml, coq, rust, haskell] dependencies: []
可操作的触发器 - 激活此技能的短语
triggers:
- “实现一个lambda演算解释器”
- “构建一个函数式语言解释器”
- “理解传值调用与传名调用”
可直接使用的提示
action_prompts:
- “在Python中实现一个无类型lambda演算的传值调用解释器”
- “向我的lambda演算解释器添加传名调用评估策略”
- “解释闭包与开项之间的区别”
可选斜杠命令
commands: []
可选脚本文件
script: null
技能名称
状态: 准备就绪 | 自动触发: 是
触发器
此技能在用户提到以下内容时激活:
- 实现lambda演算解释器
- 理解评估策略(传值调用,传名调用)
- 构建函数式语言解释器
动作提示
直接使用以下提示:
实现一个传值调用的lambda演算解释器,包括:
- Var, Abs, App AST节点
- 闭包环境
- Beta规约
向现有解释器添加传名调用评估:
- 延迟实现
- 惰性参数评估
- 与传值调用行为比较
何时使用此技能
- 使用场景1
- 使用场景2
- 使用场景3
此技能的功能
- 能力1: 描述
- 能力2: 描述
- 能力3: 描述
如何使用
基本用法
# 简单示例代码
使用脚本
# 如果提供脚本:
python run.py --input "lambda x. x"
python run.py --strategy cbv --file example.lc
高级用法
# 带有选项的更复杂示例
测试案例
| 输入 | 预期输出 | 描述 |
|---|---|---|
(λx. x) (λy. y) |
λy. y |
恒等应用 |
(λx. λy. x) (λz. z) |
λy. λz. z |
常数函数 |
((λf. f f) (λx. x)) |
λx. x |
Omega组合子 |
关键概念
| 概念 | 描述 |
|---|---|
| 概念 1 | 描述 1 |
| 概念 2 | 描述 2 |
提示
- 提示 1
- 提示 2
- 提示 3
常见使用场景
- 使用场景 1
- 使用场景 2
- 使用场景 3
相关技能
simply-typed-lambda-calculus- 使用此模板样式的已完成技能示例
规范引用
| 引用 | 为什么重要 |
|---|---|
| 引用 1 | 描述 |
| 引用 2 | 描述 |
权衡与限制
方法权衡
| 方法 | 优点 | 缺点 |
|---|---|---|
| 方法 1 | 优点 1 | 缺点 1 |
| 方法 2 | 优点 2 | 缺点 2 |
何时不应使用此技能
- 场景 1
- 场景 2
限制
- 限制 1
- 限制 2
评估标准
高质量的实现应具备:
| 标准 | 需要关注的内容 |
|---|---|
| 标准 1 | 描述 1 |
| 标准 2 | 描述 2 |
质量指示器
✅ 良好: 良好实现的描述 ⚠️ 警告: 警告迹象的描述 ❌ 差: 差实现的描述