【发布时间】:2014-04-01 23:21:09
【问题描述】:
这里有一个问题是将列表(任意长度)转换为矩阵(请参阅底部的链接),但我想做相反的事情,将矩阵递归地转换为列表。
Matrix = [[a,b,c],[d,e,f]]
定义谓词:
matrixToList(MyMatrix,NewList)
在哪里NewList = [a,b,c,d,e,f].
有人可以帮忙吗?
谢谢。
【问题讨论】:
-
你可以
flatten/2列表吗? -
我想知道,现在所有的 Prolog 课程是否都在教授和推广使用驼峰式大小写作为 Prolog 函子名称?正如@aBathologist 建议的那样,
matrix_to_list(MyMatrix, NewList) :- flatten(MyMatrix, NewList).将是最干净的实现。 -
@mbratch 我不认为这是故意的,很可能是 Java 编程的习惯。如果您遵循此处很好地描述的编码约定:arxiv.org/abs/0911.2899,那么它也将是
My_Matrix,甚至是My_matrix。 -
@aBathologist:使用
flatten/2绝对是个坏主意:整数矩阵矩阵因此会被展平为整数列表,而不是整数矩阵列表。
标签: list recursion matrix prolog