Мне удалось сделать код схемы, чтобы добавить в схему два списка минусов. скажем, list1 - '( p. d) list 2 ' ( p p p. d) моя пользовательская функция добавления, использующая концепции cdr и car, может делать ( p p p p. d), как и ожидалось.
Однако теперь я хочу умножить оба и на основе количества p, у меня есть пользовательская функция, которая дает мне количество списков. скажем, для списка1 -> 1 списка2-> 3
Я также могу определить, пуст ли какой-либо из двух списков, поэтому я вывожу 'd.
Но настоящая проблема заключается в том, когда дело доходит до умножения. list1 - '(pp .d) list2 - '(pp p p p p .q) ожидаемый результат - (2 * 5 = 10 p's) so '(pp p p p p p p p p p .z)
Я пытался использовать цикл while, do while, добавить пользовательскую функцию, но не могу понять, как это сделать. Может быть, какие-то рекомендации помогут мне :)
Я хочу создать пользовательскую функцию, так как не хочу использовать набор! или что-нибудь, что упрощает процесс, но вы хотите понять, как рекурсия может работать в этом случае :).
d
иz
? Обычно сумма двух списков является стандартной процедуройappend
, но она не может делать точечные списки, поскольку(a . b)
, добавленное к(a . b)
, по вашему мнению, равно(a a . b)
, но как насчет первых списковb
?? Вы говорите, что написали код, но где он? Если вам нужна помощь, вам нужно приложить некоторые усилия. - person Sylwester   schedule 05.10.2015