У меня есть функция:
;; Converting list of integers to a bit string
(define (convert-integers-to-bits integer-representation-of-bits)
(if (null? integer-representation-of-bits)
'#*
(bit-string-append
(convert-integers-to-bits (cdr integer-representation-of-bits))
(unsigned-integer->bit-string 1 (car integer-representation-of-bits)))))
Когда я запускаю его в небольших списках, он работает, но на реальных файлах выдает предупреждение:
;Aborting!: maximum recursion depth exceeded
Пример использования:
]=> (convert-integers-to-bits '(1 1 0 1 0 1))
;Value: #*110101
Является ли преобразование его в хвостовую рекурсивную функцию решением здесь?Если это так, любые идеи будут оценены.Спасибо.