美文网首页
6.9分配和重定义

6.9分配和重定义

作者: jarod_chan | 来源:发表于2015-12-16 21:34 被阅读26次

set!可以改变一个变量的定义,但是它只能改变一个模块内部自己的定义,它无法改变导入的绑定。
如果一个模块想授权其它模块改变自己的导出,可以导出自己的可变函数来改变自己的导出。
禁止分配导入变量可以支持模块化,而且可以使程序执行更有效率。
如果在模块里的一个标识符没有调用set!,那么这个标识符可以被当做常量。
一般情况下重定义不被允许。基于文件的模块,简单修改文件不会在任何情况下重定义。因为文件模块在需要的时候被加载,而且之前加载的定义之后也可以使用。使用racket反射可以重定义一个模块。在repl中,非文件模块可以之定义,但是在重定义之前绑定引用,也会使重定义失败。
为了测试的目的,racket反射层提供了一个参数compile-enforce-module-constants解除常量约束。

相关文章

  • 6.9分配和重定义

    set!可以改变一个变量的定义,但是它只能改变一个模块内部自己的定义,它无法改变导入的绑定。如果一个模块想授权其它...

  • redis设计与实战笔记

    数据结构 动态字符串定义:优点: 杜绝内存溢出 减少内存分配次数空间预分配和惰性空间释放。 链表定义: 字典定义:...

  • 2020年第27周复盘629--7.05)

    平均时间分配 工作6天 9.5小时/天 备考学习 2.6小时/天 睡 眠 6.9小...

  • RocketMQ队列分配和重平衡

    接着上节来说,Broker端如何进行分配消息的?同时当新增或者删除消费者时,如果进行重平衡,被其他消费者分配后...

  • 内存池

    内存管理 定义:操作系统对内存的划分和动态分配 功能: 内存空间的分配和回收:由操作系统完成主存储器空间的分配和管...

  • 跑者世界 | 2016年秋季跑鞋指南

    售价:$150重量:8.1oz(男款) 6.9oz(女款) 售价:$120重量:10.5oz(男款) 9.0oz(...

  • 民国时期 双旗开国纪念币当十文

    藏品规格: 重:6.9g;直径:2.8cm 重:6.8g;直径:2.8cm 1911年辛亥革命胜利后,清帝退位,中...

  • 【kafka】kafka数据迁移、分区副本重分配

    一、 分区副本重分配 1 生成推荐配置脚本 关键参数--generate在进行分区副本重分配之前,最好是用下面方式...

  • 第五天 c语言

    今天讲了数组的定义和使用 1. 定义 int a[10];表示定义一个数组a,它分配10个int类型的空间。方括号...

  • 搭建分布式Hadoop

    1. 安装虚拟机 virtualbox和centos6.9Centos6.9_x64百度网盘地址:https://...

网友评论

      本文标题:6.9分配和重定义

      本文链接:https://www.haomeiwen.com/subject/ebfphttx.html