我目前正在尝试定义一个函数,该函数采用列表列表,列出方形矩阵的模型并返回所述矩阵的对角线。
例如,输入((a b c) (d e f) (g h i))
会提供(a e i)
。
我对如何解决这个问题有一个模糊的想法(取最后一个列表的最后一个元素,然后是第二个到最后一个列表的倒数第二个元素等等),但我不确定如何去做在Scheme中编程。
如果有人能指出我正确的方向,我将不胜感激。
感谢。
答案 0 :(得分:8)
(向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)
你周围有一个明亮的场地!