В настоящее время я пытаюсь создать функцию под названием reverse-with-count, которая возвращает список символов в обратном порядке, которые повторяются несколько раз, как указано соответствующим элементом второго списка чисел.
Например:
(reverse-with-count '(a b c) '(1 2 3)) => (c c c b b a)
(reverse-with-count '(d c b a) '(3 0 0 1)) => (a d d d)
Я считаю, что мое предложение else правильное, но я получаю ошибки в своем коде для условий, которые я установил, где он ожидает real ?
Это то, что я сделал до сих пор:
(define reverse-with-count
(lambda (ls1 ls2)
(cond
((null? ls2) ls1)
((positive? ls2) (error "Please enter a positive number!"))
((> ls1 ls2)(error "Please ensure the lists are the same size."))
((< ls1 ls2)(error "Please ensure the lists are the same size."))
(else
(cons (reverse (make-string (car ls2)(ls1))
(reverse-with-count (cdr ls2)(cdr ls1))))))))
Как я могу решить эту проблему?