本地球拍

2024-03-09

我正在书中阅读有关本地定义的内容,并且遇到了这个例子-

(local ((define (f x) (+ x 5))
    (define (g alon)
      (cond
        [(empty? alon) empty]
        [else (cons (f (first alon)) (g (rest alon)))])))
  (g (list 1 2 3)))

到底是什么local在这里做吗?


local记录在here http://docs.racket-lang.org/htdp-langs/advanced.html?q=local#%28form._%28%28lib._lang%2Fhtdp-advanced..rkt%29._local%29%29作为 HtDP 语言之一的一部分或here http://docs.racket-lang.org/reference/local.html?q=local作为local模块。让我们依次看看每一个。第一个是 HtDP 中的:

(local [definition ...] expression)对表达式中使用的相关定义进行分组。每个定义可以是定义或定义结构。计算 local 时,按顺序计算每个定义,最后计算主体表达式。只有局部中的表达式(包括定义和表达式的右侧)可以引用定义所定义的名称。如果本地定义的名称与顶级绑定相同,则内部名称会“隐藏”外部名称。也就是说,在本地内部,对该名称的任何引用都指的是内部名称。

接下来,就是local module:

(local [definition ...] body ...+)与 letrec-syntaxes+values 类似,只不过绑定的表达方式与顶层或模块主体中的相同:使用 Define、define-values、define-syntax、struct 等。定义与非定义区分开来。通过部分扩展定义形式来定义(参见部分扩展)。与在顶层或模块主体中一样,开始包装序列被拼接到定义序列中。

因此,根据所使用的语言/模块,您会知道哪些local是你找到的那个。显然,这不是标准的特殊形式。

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

本地球拍 的相关文章

  • 函数中的变量

    我看到了下面的代码 第一次调用 next num 回报1 第二个返回2 define next num let num 0 lambda set num num 1 num next num 1 next num 2 我无法理解的是 num
  • 如何找到 MIT 方案中出现错误的地方?

    当你在 MIT 方案中遇到错误时 它不会告诉你错误发生在哪里 例如 它只打印如下内容 Unbound variable top left To continue call RESTART with an option number REST
  • 球拍、包含、要求和提供不起作用

    我有一个名为 functions rkt 的文件 其中有一些函数 我正在另一个文件中工作 我们将其命名为 working rkt 我在 working rkt 中尝试了以下操作 一一 来使用 functions rkt 中定义的函数 req
  • 有人能用简单的话解释一下 call/cc 吗?

    我正在研究语言球拍并试图掌握 call cc 的实际用途 有人可以用简单的语言解释一下并举一两个例子吗 谢谢 并非所有实现call cc完全相同 但希望这个答案可以适用于所有常见的变体 包括球拍 没有什么麻烦 这个故事其实是根据c内置于Un
  • 如何在方案中向后打印字符串?

    我知道如果我按照以下方式编写方案代码并输入 单词 a b c 它将以相同的顺序输出列表 您能告诉我是否有一种方法可以以相反的顺序打印出来 例如 列出 c b a 它需要是我以相反顺序打印出来的用户输入 所以 我不能称之为 反向 a b c
  • 创建后缀号码球拍

    我正在尝试在 Racket 中试验我可以做的事情 并且我想在数字后加上字母 对于这个例子 我只想代表10000 as 10K and 1000000 as 1M 有没有办法 用宏或其他方式 我可以扩展1M to 1 1000000 或者有什
  • 模拟Scheme中Python的范围

    如何在Scheme中创建连续数字的列表 在Python中创建一个从1到10的整数列表是range 1 11 方案有等效的吗 mzscheme version gives Welcome to Racket v5 2 1 Edit Per h
  • 使用map或reduce或filter,在Scheme中,计算列表中有多少个元素[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 number length 1 1 0 1 0 0 这假设返回 6 我知道如何使用长度并找到它 但我不知道如何在没有长度的情况下使用映射或过
  • 在Racket中将结构递归转化为累积递归

    我有一些代码来查找最大高度并将其替换为关联的名称 身高和姓名有单独的列表 每个列表的长度相同且非空 我可以使用结构递归来解决这个问题 但必须将其更改为累积递归 而且我不确定如何做到这一点 我见过的所有例子都让我困惑 有人能够将代码变成使用累
  • 迭代函数可以调用自身吗?

    当观看下面的 MIT 6 001 课程视频时 讲师在 28 00 将此算法标记为迭代 但是 在 30 27 他说这个算法和实际的 递归 算法都是递归的 该函数正在使用基本情况调用自身 那么这次迭代情况如何 private int itera
  • Emacs Lisp 可以将 lambda 形式分配给像Scheme 这样的变量吗?

    在研究 Emacs Lisp 的符号单元时 我发现像这样的示例函数 defun a rest x x 我可以打电话 symbol function a 返回 lambda rest x x 如果我愿意的话我可以使用它 gt lambda r
  • 为什么《小阴谋家》中的所有 lambda 表达式都是如此?

    在从 SICP 学习了一些计划之后 我开始阅读 小计划 我觉得这本书很有趣 并且已经完成了大约四分之一 我注意到我可以在不使用 lambda 的情况下编写许多 大多数 全部 解决方案 而 The Little Scheduleralways
  • Scheme (Lisp) 中树的深度反转

    我对Scheme中的基本树数据结构进行了深度逆向 define deep reverse t cond null t not pair t t else cons deep reverse cdr t deep reverse car t
  • 如何在mit-scheme中正确使用(读取)?

    我在文档和 Rosetta 代码中读到 read 用于从控制台获取输入 所以我写了这段代码来检查这一点 display read 1 但 mit scheme 从不要求用户输入 程序就会终止 为什么会这样呢 在 REPL 中 display
  • 如何在 DrScheme 中包含文件?

    我正在使用 DrScheme 来完成 SICP 并且我注意到某些程序 例如 square 一遍又一遍地使用 我想将它们放在一个单独的文件中 以便我可以将它们包含在其他程序中 而不必每次都重写它们 但我似乎不知道如何做到这一点 我试过了 lo
  • 忽略 Racket 中的多个返回值

    在 Racket 中 可以通过执行以下操作从函数返回多个值 define foo values 1 2 3 然后我们可以通过这样做来绑定它们 define values one two three foo Now one一定会1 two t
  • 内联执行生成的汇编程序

    我正在阅读以下演示文稿 http wingolog org pub qc 2012 js slides pdf http wingolog org pub qc 2012 js slides pdf其中讨论了 4 10 19 内联 ASM
  • Scheme 和 Common Lisp 之间的实际区别是什么? (或任何其他两种 Lisp 方言)

    注意 我并不是在问学哪个 哪个更好或者诸如此类的问题 我选择了 SICP 的免费版本 因为我觉得它读起来很好 我听说过有关它的好东西 并且我对编程的这一方面很感兴趣 我知道Scheme 是Lisp 的一种方言 我想知道 Scheme 和Co
  • 如何在 Visual Studio Code 上运行 Scheme?

    我想知道如何在 Visual Studio Code 上运行简单的方案代码 我已经安装了一个名为 Scheme 的扩展 但下一步是什么 我没有找到有关如何运行代码或开发人员联系方式的扩展的任何详细信息 现在在 VSCode 上编译Schem
  • 内置方案以检查列表包含情况

    在Python中 我可以执行 x in list 来查看列表是否包含x 方案中是否有等效的内置功能可以做到这一点 The R5RS http schemers org Documents Standards R5RS HTML r5rs Z

随机推荐

  • 如何配置 husky pre-push hook 来运行测试

    我正在尝试配置 husky 预推送挂钩以在推送之前运行测试 一切看起来都很好 跑完后git push origin钩子被触发并且测试正在运行 问题是 当测试完成后 即使操作成功 推送也会被冻结 并且没有其他事情发生 包 json scrip
  • SQL Server - 列顺序重要吗?

    在性能和优化方面 在 SQL Server 中构建表时 列的排列顺序重要吗 我的主键是第一列有什么关系吗 构建多字段索引时 列是否相邻有关系吗 Using ALTER TABLE syntax is it possible to speci
  • 正则表达式匹配 img 标签中的任何 url

    我需要一个可以匹配 img src 标签中任何 url 的正则表达式 URL 可以是 images temp jpg 或 temp1 jpg 甚至 http www example com temp jpg i 123 或其他任何内容 我写
  • 使用带参数的资源文件

    我的问题是关于 c 中的资源文件 resx 字符串 部分 我用它来存储我的消息 我想知道如何使用带参数的资源条目的 值 例子 名称 显示单元格值 值 单元格上的值 和行 是 我想填写 具有不同值的参数 谢谢你 您可以对资源文件中存储的字符串
  • 确保 Spring Quartz 作业执行不重叠

    我有一个 Java 程序 每 20 秒从 Spring Qquartz 执行一次 有时只需要几秒钟即可执行 但随着数据变大 我确信它会运行 20 秒或更长时间 当一个实例仍在执行时 如何防止 Quartz 触发 触发作业 解雇两个在数据库上
  • 在两个视图控制器之间进行 Segue

    在我的故事板 如上所示 上 我有一个 ViewController 它包含一个带注释的 MKMapView 这些注释包含一个公开图标 点击该图标时 应该将用户导航到另一个 ViewController 为此 我在视图控制器之间创建了一个推送
  • 有没有办法评估带有液体标签的字符串

    我需要提供页面内容参考列表 它应该包含页面上各部分的参考 我能看到的唯一方法是使用page content并解析它 但我偶然发现了数据评估的问题 例如我可以从page content site data sdk language SDK但没
  • Java 中比较版本字符串的有效方法[重复]

    这个问题在这里已经有答案了 可能的重复 如何比较 Java 中的两个版本字符串 https stackoverflow com questions 198431 how do you compare two version strings
  • Delphi解析xml文件

    首先 我对编码和 Delphi 很陌生 已经断断续续使用了几个月了 下面是一个示例 xml 文件 我想要实现的是解析 xml 文件的每个 名称 部分中的所有数据 我以前从未这样做过 一些指导将不胜感激 我在这里看过与此类似的其他问题 但我无
  • 在 Google Apps 脚本中异步运行函数

    我正在制作一个调用 GAS 函数的 Slack 机器人 一切正常 只是 Slack 显示错误消息 因为它在调用 API 时只等待 3 秒响应 任何人都可以帮助我弄清楚如何异步运行 everyDay2 以便我可以在完成之前返回响应 我尝试过
  • Vue/nuxt - 如何从子组件访问父级引用

    我有一个全局确认模式组件 已在我的默认布局文件中注册 然后 我会尝试从 page index vue 访问它 但调用 this refs 只会返回一个空对象 将模式组件放在我的pages index vue 中会起作用 但它会破坏我的全局确
  • 如何通过全客户端实施来保护 Firebase?

    我有一个非常简单的 Firebase 应用程序 所有操作都在客户端通过 JavaScript 进行读取和写入 我这边没有用户帐户或服务器端应用程序 现在 任何查看我的 JavaScript 的人都可以复制我的 Firebase URL 并拥
  • 计算相对于某个根的路径 - Path.Combine 的逆

    有没有可靠的方法来计算 Path Combine 的逆 Path Combine c folder subdirectory something txt 可能会返回类似 c folder subdirectory something tex
  • PHP:将类的所有函数包装在子类中

    使用 PHP 库类 我想将其所有公共函数包装在一个子类中 大致如下 class BaseClass function do something some stuff function do something else other stuf
  • 如何在堆栈导航器(react-navigation 2.X)中卸载以前安装的组件?

    这是我的应用程序的简化流程 login 主页 有彩色图表或创建图表的选项 colorInDiagram 用户为图表的各个部分着色 付款 主页 返回主页 现在 在此之后 如果用户决定再次为图表着色 他 她将从主页中选择该特定选项 并且流程将照
  • 此 NSPersistentStoreCoordinator 没有持久存储(架构不匹配或迁移失败)。无法执行保存操作

    我正在开发一个使用 x x xcdatamodel 的应用程序 现在 在同一个 x x xcdatamodel 中 我在其中一个实体中添加了一个属性 应用程序崩溃 显示消息 此 NSPersistentStoreCoordinator 没有
  • 为什么 int8_t 和用户通过 cin 输入显示奇怪的结果[重复]

    这个问题在这里已经有答案了 一小段代码让我发疯 但希望你能阻止我跳出窗外 看这里 include
  • 在类声明/定义中包含标头

    我知道你可以这样做 def h A int x A h class A public include def h A cpp A A x 0 int main A a return 0 我的问题是 你为什么要这样做 有什么优点吗 我可以看到
  • flutter_bloc 库中的存储库提供程序在推送新路由时不提供存储库

    我正在使用 flutter bloc 库来构建我的应用程序 除了 BlocProvider 之外 我还使用存储库提供程序 因为我将在整个应用程序中广泛使用特定的存储库 但我在上下文方面遇到了问题 下面是我的代码片段 主程序 dart voi
  • 本地球拍

    我正在书中阅读有关本地定义的内容 并且遇到了这个例子 local define f x x 5 define g alon cond empty alon empty else cons f first alon g rest alon g