You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Erlang中fun erlang:'+'/2的+运算符含义及等价Elixir用法疑问

问题解答

  1. 关于fun erlang:'+'/2的含义
  • 你的理解完全正确,'+'就是加法运算符对应的原子,因为+不属于Erlang原子允许的默认字符范围,所以需要用单引号包裹。/2表示这是一个接收2个参数的函数,这个函数引用的作用就是对传入的两个参数做加法运算,本质就是一个基础求和函数,你没有想复杂。
  • 你可以在Erlang shell里直接验证它的效果:
    1> Add = fun erlang:'+'/2.
    #Fun<erlang.+.2>
    2> Add(2, 3).
    5
    
  1. 关于ra项目中这个状态机的作用
  • 你对这个三元组结构的判断也符合ra的设计:{simple, 处理函数, 初始状态}是ra提供的极简状态机模板,处理函数的入参固定为「当前状态值 + 新输入的操作数据」,返回值就是更新后的状态值。
  • 这里用加法函数、初始值0的状态机,效果就是持续累加所有输入的数值,最终状态值就是所有输入的总和。
  1. 和Elixir语法的对应关系
  • 这个Erlang写法和Elixir的&:erlang.+/2完全等价,二者指向的是同一个函数,你可以在Elixir的iex中验证:
    iex> add = &:erlang.+/2
    &:erlang.+/2
    iex> add.(2, 3)
    5
    

两种写法只是Erlang和Elixir不同的函数捕获语法差异,底层调用的是同一个Erlang标准库函数。

内容的提问来源于stack exchange,提问作者DogEatDog

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 09:36:04