在SML中,如何为类似NumPy的广播编写多维数组的“地图”?
|
这里是完整的规则,但是作为一个简单的示例,如果
A
是类型为\'a list list list
的3D数组,而f
是类型为\'a list -> \'b
的函数,我希望将lift2ѭ提升为\'a list list list -> \'b list list
的函数map\'
。对于特定示例,map\'
等效于以下代码:
fun map\' fList aListListList = map (fn aListList => map fList aListList) A
当然,除了map\'
有多少尺寸外,我都希望map\'
能工作。我在写类型签名时遇到麻烦,这通常表明我做错了。
编辑:这是一种解决方法?
fun map\' levels f A =
if levels < 1
then return f(A)
else return map\' (levels - 1) f A
没有找到相关结果
已邀请:
1 个回复
誓猎贰
。但是,您可以看到
的嵌套深度不会按其类型进行编码,
不会从其类型中完全消除一层可见的嵌套(或由编译器验证)这一事实。