вот мой функциональный код:
forall X -> int is_null (X x) asm "ISNULL";
forall X -> (tuple, ()) push_back (tuple tail, X head) asm "CONS";
forall X -> (tuple, (X)) pop_back (tuple t) asm "UNCONS";
forall X -> X car(tuple list) asm "CAR";
() recv_internal() {
;;;;;;;
}
(tuple) write_bit(tuple lisp, int bit) {
if (lisp.is_null()) | (lisp.car().builder_bits() == 1023) {
lisp~push_back(begin_cell());
}
builder b = lisp~pop_back();
b~store_int(bit, 1);
lisp~push_back(b);
return lisp;
}
;; testable
(cell) find_and_replace(int flag, int value, cell linked_list) method_id {
tuple lisp = null();
int i = 0;
;; while i < 5 {
;; lisp = write_bit(lisp, 1);
;;
;; i += 1;
;; }
lisp = write_bit(lisp, 1);
lisp = write_bit(lisp, 1);
lisp = write_bit(lisp, 1);
lisp = write_bit(lisp, 1);
lisp = write_bit(lisp, 1);
return begin_cell().end_cell();
}
Хотелось бы знать, почему я получил код ошибки здесь: "Ошибка: не удается выполнить метод get. Получил код выхода: 7"
Но если я прокомментирую этот цикл и выполню итерацию вручную L147-151 - ошибок не будет
lisp = write_bit(lisp, 1);
lisp = write_bit(lisp, 1);
lisp = write_bit(lisp, 1);
lisp = write_bit(lisp, 1);
lisp = write_bit(lisp, 1);
Этот вопрос был импортирован из чата Telegram: > <***Скрыто***
click to show
Оригинал вопроса