プログラムが定義されているとします。
(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)
。
しかし、私の場合、プログラムを解析する必要があり、省略されたインデックスが 1 に対応することも考慮する必要があることを理解しています。X は X1 に対応します。
これをリストで簡単に実行できる関数を作成できますが、「プログラム」では作成できません。
最初に何を見ればよいか教えていただけると助かります。
ありがとう。