如何修改erlang中的记录?

2024-05-08

我需要修改操作记录中的值 {place} 和 {other_place}。

#op{
    action   = [walk, from, {place}, to, {other_place}],
    preconds = [[at, {place}, me], [on, floor, me], 
                [other_place, {place}, {other_place}]],
    add_list = [[at, {other_place}, me]],
    del_list = [[at, {place}, me]]
}

但 erlang 不允许修改变量。有对应的数据类型吗?


erlang 不允许你修改变量,这是事实。但没有什么可以阻止您制作变量的修改副本。

鉴于您的记录:

Rec = #op{
    action   = [walk, from, {place}, to, {other_place}],
    preconds = [[at, {place}, me], [on, floor, me], 
                [other_place, {place}, {other_place}]],
    add_list = [[at, {other_place}, me]],
    del_list = [[at, {place}, me]]
}

您可以有效地获得修改后的版本,如下所示:

%% replaces the action field in Rec2 but everything else is the same as Rec.
Rec2 = Rec#op{action = [walk, from, {new_place}, to, {new_other_place}]}

这将完成你似乎要求的事情。

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

如何修改erlang中的记录? 的相关文章

随机推荐

  • Firebase FCM 通知图像不会显示

    我在我的项目中使用 FCM 当尝试使用 firebase 撰写通知 功能测试传入通知时 我将标题 正文和图像 URL 添加到消息中 它显示了它应该是什么样子 丰富的通知与图像 但发送给我的通知是正常的 没有任何图像 这是 firebase
  • 拦截登录/注销ejabberd

    我想知道用户何时在自定义模块中的 ejabberd 会话中登录和注销 而不更改 ejabberd 代码 我需要它 因为我必须在用户登录时执行一些操作 并清理用户注销时执行的操作 另外 在某些情况下我需要能够注销用户 那么 有没有办法扩展某些
  • VSO:具有分层区域结构的单一项目?

    历史上我们一直有各自的VSO正在开发的每个逻辑项目的项目 这一点尤其重要 因为我们需要为每个项目都有单独的积压工作 每个项目都有自己的产品负责人 我们有一个由大约 10 名开发人员组成的团队 他们在这些项目之间工作超过 2 周的冲刺 在使用
  • Java中构造函数中的长参数列表[重复]

    这个问题在这里已经有答案了 可能的重复 重构具有太多 6 个以上 参数的方法的最佳方法是什么 https stackoverflow com questions 439574 whats the best way to refactor a
  • 在 Ubuntu 10.4 上安装 Python-2.7

    我似乎无法正确安装 zlib 我在 Ubuntu10 4 上从源代码安装了 Python 编辑 博宾斯和卢珀帮忙了 确保安装这些包 然后重新编译 Python sudo aptitude 安装 zlib1g dev libreadline6
  • numpy 内部存储数组的大小吗?

    来自 numpy 数组的规范here http docs scipy org doc numpy 1 10 0 reference c api types and structures html c PyArrayObject typede
  • 除了 80 / 443 之外,我还可以为 Kubernetes 入口设置自定义端口来侦听吗?

    我并不是说能够路由到特定端口 我的意思是实际更改入口侦听的端口 这可能吗 如何 这是在哪里记录的 不 从Kubernetes 文档 https kubernetes io docs concepts services networking
  • Heroku 自定义域:sni_endpoint?

    当向我的 Heroku 应用程序添加自定义域时 我遇到了以下错误 结果 Heroku 添加了一个新要求 Beginning November 1 2021 this new parameter will be required sni en
  • 在 MySQL 中查找 varchar 是否包含百分号

    找不到这个问题的答案 在 MySQL 中 如何选择特定列 varchar 包含百分号 的行 where col like escape
  • GridLayout 对齐列内的子项

    我有一个GridLayout由 6 个孩子组成 它的列数为 2 左列的子列有layout gravity of start end fill horizontal and layout width0dp 这会导致它们填满所有可用空间 Thi
  • 司机下令停车后 Spark 工作人员停下来

    基本上 主节点也充当从节点之一 一旦主服务器上的从服务器完成 它就会调用 SparkContext 来停止 因此该命令传播到所有从服务器 从而在处理过程中停止执行 其中一名工作人员登录时出错 信息 SparkHadoopMapRedUtil
  • 合并多个列表

    鉴于我有一个列表列表 List
  • OCMock - 尽管是预期的,但仍调用了意外的方法

    这是经过测试的代码 if MFMailComposeViewController canSendMail MFMailComposeViewController mailComposeController MFMailComposeView
  • RabbitMQ 管理插件窗口呈现为空白页面

    I have installed Erlang RabbitMQ and configured the management plugin as per the instructions on the website https www r
  • 在多个不同线程之间共享变量

    我想在多个线程之间共享一个变量 如下所示 boolean flag true T1 main new T1 T2 help new T2 main start help start 我想分享flag在主线程和帮助线程之间 这是我创建的两个不
  • 使用 store.findQuery 时捕获 404 错误

    我正在使用余烬findQuery方法并想知道如何在没有结果时捕获 404 错误 this store findQuery customer hasProjects true getArchivedProjects archived then
  • 如何在类组件中使用react-redux useSelector?

    我是 React 新手 正在尝试学习 Redux 我想访问类中的存储 但它给了我一个错误 我不能在类中使用钩子 当我在函数中使用此代码时 正如我在 YouTube 教程中看到的那样 它可以正常工作 我在这里进入商店的柜台 function
  • 在压缩、分块的 HTTP 流到达时高效地读取行

    我编写了一个 HTTP 服务器 它生成由 JSON 结构事件组成的无尽 HTTP 流 类似于 Twitter 的流 API 这些事件由 n 根据服务器发送的事件 http en wikipedia org wiki Server sent
  • 如何将逻辑应用程序出站 IP 列入白名单?

    我得到了一个使用大量逻辑应用程序和连接器 ftp sftp 到不同合作伙伴的解决方案 我的问题是出站逻辑应用 IP 的白名单 我知道有一个出站 IP 列表 但出于安全原因 大多数合作伙伴只会开放少数几个 IP 并且 IP 应该是静态的 因此
  • 如何修改erlang中的记录?

    我需要修改操作记录中的值 place 和 other place op action walk from place to other place preconds at place me on floor me other place p