查找由列表组成的方阵的对角线

Finding the diagonals of square matrix made from lists

我目前正在尝试定义一个函数,该函数采用列表列表、模型列表作为方矩阵和 returns 所述矩阵的对角线。

例如,输入 ((a b c) (d e f) (g h i)) 得到 (a e i).

我对如何解决这个问题有一个模糊的想法(取最后一个列表的最后一个元素,然后是倒数第二个列表的倒数第二个元素等),但我不确定如何解决在 Scheme 中进行编程。

如果有人能指出正确的方向,我将不胜感激。

谢谢。

(向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)

你周围一片明亮的田野!