Вложени списъци

Пример: (1 (2 (((3)) 4) (5)) ((6)))

  1. Да се реализира функция (flatten ll), която по даден списък от списъци с произволно ниво на влагане връща списък от всичките атоми на ll. Задачата да се реши с директна рекурсия и с функциите от по-висок ред apply и map.
  2. Да се реализира функция (count-paren ll), която по даден списък от списъци с произволно ниво на влагане връща броя на скобите, използвани в записа ll. Задачата да се реши с директна рекурсия и с функциите от по-висок ред apply и map.

Дървета

Дърво е корен и списък от поддървета (който може да е празен).
Пример: (1 (2 (3 (4) (5)) 6) (7))
  1. Да се реализират функции (root tree), (subtrees tree) и (leaf? tree), които дефинират основните операции на дървета.
  2. Да се реализира функцията (leaves tree), която връща списък от всички листа на tree.
  3. Да се реализира функцията (nodes tree), която връща списък от всички възли на tree.
  4. Да се реализира функцията (find node tree), която връща поддървото в tree с корен node.
  5. Да се реализира функцията (succs node tree), която връща всички наследници на възела node в tree.
  6. Да се реализира функцията (path node1 node2 tree), която връща пътя от node1 до node2 в дървото tree, ако има такъв.

Последно модифициране: събота, 12 ноември 2011, 17:38