Elixir Nx示例中1..4语法含义及官方帮助文档查询
Elixir中
1..4的含义说明 1..4是Elixir原生的Range(范围)类型,属于结构体类型,不是列表,因此执行is_list(1..4)会返回false,你可以通过is_struct(1..4, Range)验证它的类型,在IEx中执行i 1..4可以直接查看它的类型详情。- 该语法表示一个包含首尾值的闭区间整数序列,上面的例子就代表1、2、3、4四个连续整数的序列。Range类型实现了Enumerable协议,因此可以直接传入所有Enum模块的函数做枚举操作,和你示例里的
Enum.chunk_every(2)配合时,会先把这个序列按每2个元素分块,得到[[1, 2], [3, 4]]的嵌套列表,再传入Nx生成带y、x维度名的2×2张量。 - 你要查询对应官方帮助文档的话,不需要联网检索,直接在本地IEx交互环境中执行
h Range就能调出Range类型的完整官方说明,包含语法规则、支持的操作、特性等全部内容。
你可以在IEx中执行以下代码验证实际运行效果:
# 类型校验 iex> is_list(1..4) false iex> is_struct(1..4, Range) true # 枚举操作效果 iex> 1..4 |> Enum.to_list() [1, 2, 3, 4] iex> 1..4 |> Enum.chunk_every(2) [[1, 2], [3, 4]] # 完整示例生成的张量结果 iex> 1..4 |> Enum.chunk_every(2) |> Nx.tensor(names: [:y, :x]) #Nx.Tensor< s64[y: 2][x: 2] [ [1, 2], [3, 4] ] >
内容的提问来源于stack exchange,提问作者Chen Yu
相关产品推荐
相关产品推荐

