【问题标题】:Finding the diagonals of square matrix made from lists查找由列表组成的方阵的对角线
【发布时间】:2015-10-27 12:01:30
【问题描述】:
我目前正在尝试定义一个函数,该函数采用列表列表、模型列表作为方阵并返回所述矩阵的对角线。
例如,输入((a b c) (d e f) (g h i)) 给出(a e i)。
我对如何解决这个问题有一个模糊的想法(取最后一个列表的最后一个元素,然后是倒数第二个列表的倒数第二个元素等),但我不确定如何去做在 Scheme 中编程。
如果有人能指出我正确的方向,我将不胜感激。
谢谢。
【问题讨论】:
标签:
recursion
matrix
scheme
lisp
【解决方案1】:
(向Nethack粉丝道歉)
当你从祭坛上退下来时,你会发现地板上放着一张小纸片,你可以从中破译以下文字:
0> Calling (DIAG ((A B C) (D E F) (G H I)))
1> Calling (DIAG ((E F) (H I)))
2> Calling (DIAG ((I)))
3> Calling (DIAG NIL)
<3 DIAG returned NIL
<2 DIAG returned (I)
<1 DIAG returned (E I)
<0 DIAG returned (A E I)
这看起来不错,但是当您开始大声阅读卷轴时,您会闻到附近有一股难闻的垃圾气味。
在你的变形魔杖的帮助下,你摧毁了被诅咒的物体。
前面的文字消失了,又出现了一个:
0> Calling (DIAG ((A B C) (D E F) (G H I)))
1> Calling (DIAG% ((A B C) (D E F) (G H I)) 0)
2> Calling (DIAG% ((D E F) (G H I)) 1)
3> Calling (DIAG% ((G H I)) 2)
4> Calling (DIAG% NIL 3)
<4 DIAG% returned NIL
<3 DIAG% returned (I)
<2 DIAG% returned (E I)
<1 DIAG% returned (A E I)
<0 DIAG returned (A E I)
你周围有一片明亮的田野!