1. Напишете функция (subst! x y l), която в списъка l замества всички срещания на x с y.
  2. Напишете функция (subst-deep! x y l), която в списъка l с произволно ниво на вложение замества всички срещания на x с y.
  3. Напишете функция (delete-i! i l), която изтрива елемент на i-та позиция в списъка l. Нужен ли е фиктивен елемент?
  4. Напишете функция (insert-i! i x l), която изтрива елемента x на i-та позиция в списъка l. Нужен ли е фиктивен елемент?
  5. Да се напише функция (map2! f m), която деструктивно заменя всеки елемент x в матрицата m (представена като списък от редовете си) с (f x). Решете задачата с две подходящи прилагания на map!, без рекурсия.
  6. Да се напише функция (minor! i j m), която изтрива от матрицата m i-ти ред и j-ти стълб. Внимавайте с първата колона!
  7. Да се напише функция (reverse! l), която обръща списъка l "на място", без да използва set-car!, а само със set-cdr!. Напишете итеративно и рекурсивно решение. Каква е разликата?
  8. Да се напише функция (set-val! key new-val al), която задава нова стойност на ключ в асоциативен списък. Ако ключът не съществува, да се добави.
Последно модифициране: събота, 12 ноември 2011, 17:38