在 LISP 中如何检查闭包中的自由变量?

2024-03-05

在 lisp 中,我可以像这样绑定在闭包中绑定的自由变量......

(let ((x 1) (y 2) (z 3))
  (defun free-variables () (+ x y z)))

(free-variables)

结果是 ...

6

我想知道是否可以动态检查绑定的闭包变量?

E.g.

(inspect-closure free-variables)

导致类似...

((x 1) (y 2) (z 3))

谢谢所以


通用语言

只能从同一范围内的函数访问闭包的内部变量(参见 Jeff 的回答)。即使那些也无法在某个地方查询这些变量。 Common Lisp 标准不提供此功能。

显然,在许多情况下,各个 Common Lisp 实现都知道如何获取此信息。例如,如果您查看 GNU Emacs 的 SLIME 代码(Common Lisp 开发环境),则代码为inspect and 回溯功能应该提供这一点。开发希望向用户/程序员展示这一点,Common Lisp 标准不提供该信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 LISP 中如何检查闭包中的自由变量? 的相关文章

  • Scala 闭包如何转换为 Java 对象?

    我目前正在研究不同语言的闭包实现 然而 当谈到 Scala 时 我找不到任何有关如何将闭包映射到 Java 对象的文档 Scala 函数映射到 FunctionN 对象是有据可查的 我假设对闭包的自由变量的引用必须存储在该函数对象中的某个位
  • R 环境和函数调用堆栈

    我正在尝试使用get在一系列函数调用中 但对象名称的查找似乎跳过了环境 例如 foo lt 1 variable in GlobalEnv getter lt function x get x getter foo returns 1 wh
  • 如何在 gcc 内联汇编中声明和初始化局部变量而不使用扩展内联 asm?

    我知道这是一个非常基本的问题 但我真的很困惑 事实上我绝对是 GCC 语法的新手 我想要拥有局部变量 带有标签的堆栈地址 而不使用扩展内联汇编 类似 Intel 语法中的以下代码 DATA1 DB 100 MOV AL DATA1 我猜这是
  • 如何在 Spring 中将对象添加到应用程序范围

    我们可以使用设置请求属性Model or ModelAndViewSpring 中的对象 我们可以用 SessionAttributes将属性保留在会话范围内 那么我怎样才能将属性放入applicationSpring中的作用域 sprin
  • 对于案例,这些表达案例的方法中哪种最好?

    这些都有效 defun testcaseexpr thecase case thecase foo format t matched foo bar format t matched bar funk format t matched fu
  • 如何在 JavaScript 中复制变量?

    我有这个 JavaScript 代码 for var idx in data var row tr tr row click function alert idx table append row 因此 我正在查看一个数组 动态创建行 创建
  • Struts2中ActionMapper、ActionProxy、ActionInitation、ActionContext对象的范围?

    任何人都可以描述一下我的对象吗 ActionMapper ActionProxy ActionInvocation ActionContext在 Struts2 应用程序中创建 由于我是 Struts2 框架的新手 我对这些对象的范围感到非
  • php 将变量绑定到旧 PHP 中的函数作用域

    我想将变量绑定到函数的作用域 我可以在 PHP 5 3 之后使用 use 关键字在 php 中执行此操作 但是如何在 PHP 5 3 以下的版本中执行等效操作 test use keyword function test use keywo
  • JavaScript作用域问题

    我正在调用此函数 将结果分配给回调中的变量 然后记录结果 但我一直未定义 var id test getID function result id result console log id 如果我将其更改为下面的代码 那么我可以看到记录的
  • JDK 8 中的默认值是 Java 中多重继承的一种形式吗?

    JDK 8 中的一项新功能允许您添加到现有接口 同时保留二进制兼容性 语法就像 public interface SomeInterface void existingInterface void newInterface default
  • 为什么 ruby​​ 方法没有词法作用域?

    例如 def test a a is for apple def inner method a something this will refer to a different a end inner method puts a end 这
  • 多个指令 [myPopup、myDraggable] 请求新的/隔离的范围

    我编写了一个对话框指令 myPopup 和另一个用于拖动此对话框的指令 myDraggable 但我总是收到错误 多个指令 myPopup myDraggable 请求新的 隔离的范围 这是一个笨蛋 http plnkr co edit k
  • 修改功能;保存到 Lisp 中的新函数

    所以我认为 lisp 在其他语言中 的优点之一是它能够实现函数工厂 接受函数作为参数 返回新函数 我想使用此功能对函数进行小的更改并将其保存为新函数 这样如果对原始函数进行更改 它们也会反映在它所基于的新函数中 注意 我不是编写原始函数的人
  • JavaScript 闭包与匿名函数

    我和我的一个朋友目前正在讨论 JS 中什么是闭包 什么不是 我们只是想确保我们真正正确地理解它 我们以这个例子为例 我们有一个计数循环 想要在控制台上延迟打印计数器变量 因此我们使用setTimeout and closures捕获计数器变
  • Lisp 中的 (定义 (平均 ....))

    我只是在玩scheme lisp 并正在考虑如何纠正我自己的定义average 我不确定如何做一些我认为需要的事情 定义一个接受任意数量参数的过程 计算这些参数 将参数列表传递给 以将它们加在一起 有人有定义的例子吗average 我似乎对
  • (cons 'a (cons 'b 'c)) 和 (cons 'a '(b.c)) 之间的 Lisp 区别

    有什么区别 cons a cons b c A B C and cons a b c A B C 我需要使用 cons 创建以下列表 a b c 所以我试图理解 是什么 代表 L E 我有以下内容 cons cons a b c 但它产生
  • 块作用域变量

    这将编译 class X public static void main String args int a 2 int a 3 这不会 class X public static void main String args int a 2
  • 在 Python 2.6 中访问外部作用域

    比如说 我有一些带有变量的作用域 并且在此作用域中调用的函数想要更改一些不可变变量 def outer s qwerty n 123 modify def modify s abcd n 456 是否有可能以某种方式访问 外部范围 就像是n
  • 如何在Spring的applicationContext.xml中指定默认范围来请求范围?

    我想让所有 bean 请求默认作用域 但是 Spring 文档说默认作用域是 Singleton 第 3 4 1 和 3 4 2 节http static springsource org spring docs 2 5 x referen
  • F# 类型提供程序与 Lisp 宏

    我一直在阅读有关 F 3 0 类型提供程序的内容 例如here http msdn microsoft com en us library hh156509 aspx 并且它们似乎基于一种编译时代码生成 在这方面我想知道它们与 Lisp 宏

随机推荐

  • 可靠地将包含 PHP 数组信息的字符串转换为数组 [重复]

    这个问题在这里已经有答案了 可能的重复 模拟 php 数组语言构造或使用正则表达式解析 https stackoverflow com questions 3267951 simulate php array language constr
  • BDE dbidorestruct 返回空表

    在我的 Delphi Sydney Win 10 应用程序中 我使用 BDE 即使在今天也是如此 当我更改 更改 删除字段时 我想修改其现有的 悖论 表 我发现了一个免费软件组件 TFieldUpdate v1 1 由 Nathanial
  • 你会推动每一个提交吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我希望有人能给我更多有关使用 git 和远程存储库的详细信息 我还没有使用过远程存储库 您向本地存储库提交较小的更改 这些更改可能不会太令人震惊
  • CMD 行判断文件/路径是本地还是远程?

    从 NT shell 脚本中 我需要能够判断目标路径是否位于本地驱动器上 例如C or D 或在远程 映射驱动器上 或者 UNC path或映射的驱动器盘符 例如Z 有什么建议么 echo off goto main isremote se
  • 如何更改 Android 的日期选择器样式

    我目前正在制作一份注册表 其中一个字段是用户的出生日期 我想使用日期选择器 但我不想要如下所示的日历布局 我希望布局看起来像这样 这样就可以更轻松地选择年份和月份 而无需滚动浏览所有内容 但是我不知道如何解决这个问题 也不知道在 style
  • 哪个是保持逻辑角度的最佳位置?

    我正在开发一个角度应用程序 假设当我们实现某个按钮的 onclick 等功能时 调用 api 处理数据 在表中显示结果 表数据应该跨页面保留 因此我们需要保持变量处于服务状态 为了实现 首先我们可以开始从模板调用函数 然后在组件中我们可以做
  • 在 WPF 中不断绘制大量位图的最佳方法?

    我被这个非常简单的问题难住了 我正在制作一个基于图块的游戏引擎 需要能够允许用户使用 WPF 用户界面编辑地图 天真地 我以为我可以简单地使用 Graphics FromImage 不断更新一个好的老式 缓冲 System Drawing
  • 如何在 pypi 上为新项目创建 API 令牌?

    我正在尝试使用 API 令牌将包上传到 PyPI 我想使用项目特定的 API 令牌而不是帐户特定的令牌 因为这看起来更安全 但是 由于尚未在 PyPI 上创建该项目 因此当我尝试在 PyPI 网站上创建新的 API 令牌时 没有可供选择的项
  • 如何使用 KeyEvent 定位正在运行的应用程序?

    我的目标是通过键事件来定位在后台服务的前台或后台运行的特定应用程序 我尝试了很多解决方案 但还没有成功 尝试的几个解决方案 全部来自后台运行的服务 通过广播 我尝试定位第一个管理关键事件的应用程序 例如电话应用程序 KeyEvent lKe
  • JAXB - 具有多个名称和类型的 XmlElement

    我有以下类层次结构 XmlRootElement public abstract class Animal XmlRootElement public class Dog extends Animal XmlRootElement publ
  • 函数内部与外部循环的速度差异

    Out of 这个帖子 https stackoverflow com questions 53971364 split a vector and summing values 53971606 53971606在对各种解决方案进行基准测试
  • 在 SQL Server 2012 上运行 DTS 包

    我读到 SQL Server 2012 不支持 DTS 包 我知道有一个向后兼容性包 选项 我们用于 SQL Server 2008R2 来运行 DTS 包 该向后兼容包不适用于 SQL Server 2012 吗 2008 R2http
  • JQuery 动画在 Internet Explorer 中不起作用

    我在使这个 JQuery 在 Internet Explorer 中工作时遇到了一些麻烦 它在 FF WebKit 等中工作得很好 向上滑动 弹起并落回原位 但在 Internet Explorer 中它什么也不做 按钮不起作用并且内容在页
  • didCreatePaymentResult stripeID 是一个card_ token,似乎无法保存给客户

    我有一个 swift iOS 应用程序 它要求用户提供应用程序中付款和未来付款的付款详细信息 它使用带有 Apple Pay 的 stripe SDK 并且似乎都已正确设置 我有以下方法 func paymentContext paymen
  • 检查类常量是否存在

    如何检查 PHP 类中是否定义了常量 class Foo const BAR 1 有没有类似的东西property exists or method exists 对于类常量 或者我可以使用defined Foo BAR 您可以使用以下代码
  • 根据 GPS 坐标将 Google 地图嵌入 HTML 页面

    我有一个 PHP 照片库 可以从图像中读取 GPS 坐标 我想修改它以使用坐标并在照片页面上包含谷歌地图 有没有一种简单的方法可以通过仅提供这对信息来在 HTML 页面上显示谷歌地图 Thanks 以下是一些可以帮助您入门的示例 使用谷歌地
  • 当我指定机器名时,无法在自己的机器上查询SystemIndex

    我正在尝试编写一个简单的程序来连接到远程计算机并查询索引状态 这是在我的机器上执行此操作的代码 这工作正常 using System using Microsoft Search Interop namespace IndexStatus
  • NServiceBus升级到3.3.8版本后出现WebException错误404

    我刚刚将 NServiceBus 解决方案更新到版本 3 3 8 我之前的版本是3 2 2 当我运行我的解决方案时 我收到以下错误 发生Web异常 远程服务器返回错误 404 未找到 发生 System Net WebException H
  • 将 csv 中的列转换为日期 powershell

    我有一个与此类似的 csv fundName MMFcusip ticker AsOfDate SumHoldingPercent BlackRock OH Muni MMP Instit 091927236 COIXX 2 29 2012
  • 在 LISP 中如何检查闭包中的自由变量?

    在 lisp 中 我可以像这样绑定在闭包中绑定的自由变量 let x 1 y 2 z 3 defun free variables x y z free variables 结果是 6 我想知道是否可以动态检查绑定的闭包变量 E g ins