【发布时间】:2016-04-19 00:51:31
【问题描述】:
我想知道如何使用 O'Caml 形成矩阵
我已经从一个元组列表中形成了一个普通列表,这些元组通过以下方式指示索引和元素:
List.map (fun (idx, x) -> x ) list
我想在不使用递归或循环的情况下对矩阵执行此操作。只是高阶函数和 List.module
(上下文:我正在尝试在给定矩阵的情况下转置矩阵)
【问题讨论】:
-
你的函数似乎没有按照你说的做。它忽略元素并列出索引。目前尚不清楚您对矩阵的要求是什么。你是说你会有一个三元组列表(index1,index2,element)?您是否保证索引将从 0(比如说)开始并且会很密集?它们会按顺序排列吗?
-
@JeffreyScofield 我刚刚修复它,这是一个错字。我的错。是的,我正在尝试获取三元组列表(index1、index2、element)。我尝试转置矩阵的方法是 1. 在每个元素上附加一个标志左右作为表示它的索引的数字(通过 mapi?) 2. 将矩阵折叠成一个大的元组列表,提供位置信息(通过 flatten) 3. 遍历元组列表并使用 @ 组装一个矩阵来重构矩阵
标签: list matrix ocaml transpose higher-order-functions