ВУЗ:
Составители:
Рубрика:
15
Вложенные вызовы САМ и CDR можно записывать в сокращенном виде
Комбинируя селекторы CAR и CDR, можно выделить произвольный элемент
списка. Например:
[5] (cdr (cdr (car '((а b с) (d е) (f)))))
(С)
Комбинируя вызов CAR и CDR образуют уходящие в глубину списка
обращения, и в Лиспе используется для этого более короткая запись: желаемую
комбинацию вызовов CAR и CDR можно записать в виде одного вызова функции:
(С... R список)
Вместо многоточия записывается нужная комбинация из букв А (для функции
CAR) и D(для функции CDR):
(cadr х) —> (саr (cdr x))
(cddar х) —> (cdr (cdr (саr х)))
Примеры:
[6] (cddar '((а b с) (d е) (f)))
(С)
[7] (cddddr '(Программировать на Лиспе просто ?))
(?)
LIST создает список из элементов
Другой часто используемой встроенной функцией является: (LIST х1 х2 хЗ ... )
которая возвращает в качестве своего значения список из значений аргументов.
Количество аргументов функции LIST произвольно:
[0] (list 1 2)
(1 2)
[1] (list 'а 'b (+ 1 2))
(А B 3)
[2] (list 'а '(b с) 'd)
(А (B С) D)
[3] (list (list 'а) 'b nil)
((А) B ())
[4] (list nil)
(())
Построение списков нетрудно свести к вложенным вызовам функции CONS,
причем вторым аргументом последнего вызова является NIL, служащий основой для
наращивания списка:
[0] (list 'а)
15 Вложенные вызовы САМ и CDR можно записывать в сокращенном виде Комбинируя селекторы CAR и CDR, можно выделить произвольный элемент списка. Например: [5] (cdr (cdr (car '((а b с) (d е) (f))))) (С) Комбинируя вызов CAR и CDR образуют уходящие в глубину списка обращения, и в Лиспе используется для этого более короткая запись: желаемую комбинацию вызовов CAR и CDR можно записать в виде одного вызова функции: (С... R список) Вместо многоточия записывается нужная комбинация из букв А (для функции CAR) и D(для функции CDR): (cadr х) —> (саr (cdr x)) (cddar х) —> (cdr (cdr (саr х))) Примеры: [6] (cddar '((а b с) (d е) (f))) (С) [7] (cddddr '(Программировать на Лиспе просто ?)) (?) LIST создает список из элементов Другой часто используемой встроенной функцией является: (LIST х1 х2 хЗ ... ) которая возвращает в качестве своего значения список из значений аргументов. Количество аргументов функции LIST произвольно: [0] (list 1 2) (1 2) [1] (list 'а 'b (+ 1 2)) (А B 3) [2] (list 'а '(b с) 'd) (А (B С) D) [3] (list (list 'а) 'b nil) ((А) B ()) [4] (list nil) (()) Построение списков нетрудно свести к вложенным вызовам функции CONS, причем вторым аргументом последнего вызова является NIL, служащий основой для наращивания списка: [0] (list 'а)
Страницы
- « первая
- ‹ предыдущая
- …
- 13
- 14
- 15
- 16
- 17
- …
- следующая ›
- последняя »