一个Scheme过程,它返回程序L中使用的最大索引

时间:2012-04-26 15:37:24

标签: programming-languages scheme

说我已经定义了一个程序:

(define myprog
  (a-program
   (list (labeled 'A12 (add1 'X)) (unlabeled (sub1 'Y4)))))

我想编写一个程序来查找上述程序中使用的最大索引。

测试案例如下:

>(max-index myprog);myprog is the program defined above
12 
;this is from A12 because its the largest index used.

我知道该方案有一个内置函数,可以找到列表中最大的元素 (max 3 5 9) 会给我9

但在我的情况下,我明白我必须解析我的程序,并且还要考虑省略的索引将对应于1; X对应于X1。

我可以编写一个功能,可以在列表中轻松完成,但不能编写“程序”。

如果有人能告诉我我应该先看一下,那会很有帮助。

感谢。

1 个答案:

答案 0 :(得分:2)

在你的问题中定义的意义上的“程序”是一个列表列表,没有别的。如果您知道如何编写一个能够满足“列表”需求的功能,请在此处发布,您将看到它也适用于“程序”。