функции и списки в схеме / ракетке - PullRequest
2 голосов
/ 06 января 2012

Как бы вы определили функцию, которая принимает один аргумент, который должен быть списком, и возвращает элементы в списке, которые сами являются списками?

(check-expect (find-sublists ’(1 2 () (3) (a b c) a b c)) 
              ’(() (3) (a b c)))

Ответы [ 2 ]

4 голосов
/ 06 января 2012

Есть ли у вас опыт проектирования функций, которые могут фильтровать через список?

Более простая проблема с тем же видом, что и у оригинала, выглядит примерно так: разработать функцию, которая принимает списокчисел и сохраняет только четные числа.Сможете ли вы выполнить эту функцию?

Может помочь также просмотр http://www.ccs.neu.edu/home/matthias/HtDP2e/htdp2e-part2.html и выполнение упражнений с инструкциями.

2 голосов
/ 06 января 2012

Два полезных инструмента, которые должны начать вас на вашем пути:

1) Обход списка:

; traverse: takes a list of numbers
; Goes through each element, one-by-one, and alters it
(define traverse
  (lambda (the_list)
    (if (empty? the_list)
        empty
        (cons (+ 1 (first the_list)) 
              (traverse (rest the_list))))))

(traverse (cons 3 (cons 4 empty))) возврат (cons 4 (cons 5 empty))

2) list?:

(list? (list 1 2 3)) возвращает #t
(list? 5) возвращает #f

...