how to make pairs from a numeric list based on cardinality?
I have a list '(1 2 1 1 4 5) and want output list as '((1 3)(2 1)(4 1)(5
1)). I have written a small code but I am stuck with how to calculate the
cardinality for each number and then put it as pair in list. Can anyone
please look at my code and give some ideas? Thanks.
(define set2bags
(lambda (randlist)
(cond
((null? randlist) '())
(else (sort randlist)
(makepairs randlist)))))
(define makepairs
(lambda (inlist)
(let ((x 0)) ((newlist '()))
(cond ((zero? (car inlist)) '())
(else(eq? (car inlist)(car (cdr inlist)))
(+ x 1)
(return (makepairs (cdr inlist)))
(append newlist (cons (car inlist) x))
))))))
No comments:
Post a Comment