Так что в основном я борюсь с вопросом 5 в этом задании, http://www.student.cs.uwaterloo.ca/~cs136/assignments/a5/
Нам в основном даны функции, которые действуют как функции списка схем, и в вопросе 5 я должен создать функцию с именем iappend
, которая добавляет два списка. Это мой код, и он, кажется, работает.
ilist iappend(ilist il1, ilist il2) {
ilist acc = iempty();
ilist acc1 = iempty();
ilist a;
while (!iempty_huh(il1)) {
acc1 = icons(ifirst(il1), acc1);
il1 = irest(il1);
}
while (!iempty_huh(il2)) {
acc1 = icons(ifirst(il2), acc1);
il2 = irest(il2);
}
a = acc1;
while (!iempty_huh(acc1)) {
acc = icons(ifirst(acc1), acc);
acc1 = irest(acc1);
}
idelete(a);
return acc;
}
Новая проблема, может ли кто-нибудь помочь мне написать код, чтобы я не создавал временный список? Мне нужно закодировать его таким образом, чтобы я не использовал idelete .... любые предложения помогли бы:)