【发布时间】:2018-05-07 13:46:14
【问题描述】:
我对 Haskell 和函数式编程比较陌生,但现在我正在做一个项目,我试图解决 3D 立方体难题。
我有以下 3 维列表,其中 ' ' 代表空白空间,'C' 代表结构的一部分:
myShape = [["CC", " C"], [" C", " "]]
我希望能够沿所有三个轴旋转这个结构,以便在不同的位置进行尝试。我知道我可以通过独立旋转每个 2D 层来沿一个轴旋转它。
我的问题是:如何在不对旋转进行硬编码的情况下沿其他轴旋转?
【问题讨论】:
-
让我们暂时忘记 Haskell。您将如何自己旋转矩阵(例如在伪代码中)?
-
可能通过反转和转置矩阵的某种组合。但我不知道这些顺序中的哪些顺序给出了正确的结果。
-
提示:首先做一些旋转 2D 矩阵的实验:例如 3x3,然后将其推广到 nxn。
-
transpose可能会派上用场。 -
不,它们不必以正方形为界。例如
[["CCC", " C "]]。当然,如有必要,我总是可以把它们填满
标签: list haskell matrix functional-programming