Я написал функцию, которая уже находит все подмножества списка и работает. Я пытаюсь написать вторую функцию, где я получаю все подмножества N длины, но это не очень хорошо работает.найти подмножества длины N списка в схеме
Это мой код:
(define (subset_length_n n lst)
(cond
[(empty? lst) empty]
[else (foldr (lambda (x y) (if (equal? (length y) n) (cons y x) x)) empty (powerset lst))]
))
где (Powerset LST) дает список всех подмножеств. Я не понимаю цель складного? Я думал, что программа будет проходить через каждый элемент списка подмножеств, сравнить длину с n, пропустить ее в пустой список, если там же, игнорировать ее, если это не так.
Но (subset_length_n 2 (список 1 2 3)) дает мне (список (список 1 2) 1 2 3), когда я хочу (список (список 1 2) (список 1 3) (список 2 3))
заранее спасибо
о теперь я вижу, спасибо :) – user3044487