【问题标题】:SML Basis Library: what's the rationale for `ArraySlice.copyVec`?SML 基础库:`ArraySlice.copyVec` 的基本原理是什么?
【发布时间】:2024-08-07 19:50:02
【问题描述】:

事先了解

根据 standardml.org 报告的The ArraySlice structure(我没有要检查的 SML 97 手册,只有 SML 90 PDF 手册),ArraySlice.copyVec 获得了 Array.array参数作为目的地,而不是一个人(或至少我)直观地期望的ArraySlice.slice。当然,可以使用ArraySlice.base 分别获取dstdi 参数到copyVec 的数组和索引。令人惊讶的是,来自ArraySlicecopyVec 甚至没有ArraySlice.slice 类型的单个参数。幸运的是,它的src 参数是VectorSlice.slice 类型,正如直观预期的那样。

问题

ArraySlice.copyVec 的基本原理是什么?为什么它没有将ArraySlice.slice 设为dst

【问题讨论】:

    标签: sml ml


    【解决方案1】:

    大概是因为这需要额外的约束,即两个切片具有相同的长度(或至少dst 大于src)。当前的 API 没有这种额外的附加条件。另外,使用起来可能会比较麻烦。

    【讨论】: