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

APL中⊂(enclose)函数的作用及⊂x无视觉差异的原因

APL中⊂(Enclose)函数的作用与你的问题解释

为什么⊂x看起来和x没有区别?

这是APL默认输出的特性:当你对数组执行⊂x后,得到的是一个单元素嵌套标量(这个标量的唯一元素就是原数组x),而APL在显示顶层的单元素嵌套数组时,会自动将其“展开”,所以视觉上和原数组完全一致,但两者的结构已经截然不同。

你可以通过以下操作验证结构差异:

  • 查看形状:⍴x 返回 4 8(原数组是4行8列的二维数组),而⍴⊂x 返回空(因为⊂x是一个标量,没有维度)
  • 查看深度:≡x 返回 1(原数组是一维深度的普通数组),≡⊂x 返回 2(嵌套数组,深度为2)
  • 拆解嵌套:⊃⊂x 会返回原数组x,说明⊂x确实是包裹了x的嵌套结构

Enclose(⊂)函数的具体作用

⊂函数的核心是将输入数组封装为一个单元素的嵌套标量,主要用途包括:

  • 构建嵌套数组:当你需要把多个数组组合成一个更高维度的结构时,用⊂包裹每个数组可以保留它们各自的结构。比如(⊂x) (⊂x)会生成一个包含两个4×8数组的向量,此时⍴(⊂x)(⊂x)返回2,每个元素都是独立的二维数组。
  • 保护数组结构:在某些函数操作中,⊂可以避免数组被扁平化或按元素处理。比如如果直接把x和另一个数组拼接,可能会按元素展开,但用⊂包裹后,会作为整体参与操作。
  • 创建标量容器:将任意数组转化为标量类型,用于需要标量输入的场景,或者在嵌套数据结构中作为单个节点存在。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 08:01:40