Types 二郎';s typer为字符串推导了奇怪的类型

Types 二郎';s typer为字符串推导了奇怪的类型,types,erlang,type-systems,beam,Types,Erlang,Type Systems,Beam,我正在探索typer,并为它提供了一个功能,除了: const_str()->“qwe” 那家伙的类型可以推断为: -规格常数str()->[101 | 113 | 119,…] ,即“eqw”(哈?!),然后是这个“…”业务 看起来常量字符串让打字机感到困惑;我知道我不应该这样使用它们,因为有原子可以达到这个目的;但当我试着对typer(和Erlang的类型选项)了如指掌时,我认为这是令人惊讶和有趣的。有人能解释一下这里发生了什么吗? 谢谢 Erlang中的字符串是与字符的ASCII码相对应的

我正在探索typer,并为它提供了一个功能,除了:

const_str()->“qwe”

那家伙的类型可以推断为:

-规格常数str()->[101 | 113 | 119,…]

,即“eqw”(哈?!),然后是这个“…”业务

看起来常量字符串让打字机感到困惑;我知道我不应该这样使用它们,因为有原子可以达到这个目的;但当我试着对typer(和Erlang的类型选项)了如指掌时,我认为这是令人惊讶和有趣的。有人能解释一下这里发生了什么吗? 谢谢

  • Erlang中的字符串是与字符的ASCII码相对应的整数列表(即,
    “qwe”=[$q,$w,$e]=[113119101]
  • 类型语言无法表示列表元素的顺序(并且不打算这样做)
  • 您得到的类型是“一个包含数字101、113和119的非空列表”,这是推理所能得到的最接近的类型

  • 我当然知道1,但我没有想到的是2。谢谢你,伙计!