• Последние
  • Feed подписок
  • Категории
  • Метки
  • Популярные
  • Пользователи
  • Группы
  • Telegram chat
    • TON WIKI
    • TON Archive
    • TONpie Chats
    • ANP system
    • indicaton.io
Theme Center
  • Theme Center
  • default

  • reset theme
Collapse

tonpie.io

Подпишись на канал фаундера и разработчика экосистемы tonpie

Ошибка цикла отладки в FunC: Ручная итерация против цикла While в функциях обработки битов

Запланировано Прикреплена Закрыта Перенесена TON Overflow на русском
a-funca-tuple
1 Сообщения 1 Posters 21 Просмотры
    • Сначала старые
    • Сначала новые
    • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • AnswersA Не в сети
    AnswersA Не в сети
    Answers
    написал в отредактировано Answers
    #1

    вот мой функциональный код:

    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


    Оригинал вопроса

    1 ответ Последний ответ
    0

  • Войти

  • Нет учётной записи? Зарегистрироваться

  • Login or register to search.
  • Первое сообщение
    Последнее сообщение
0
  • Последние
  • Feed подписок
  • Категории
  • Метки
  • Популярные
  • Пользователи
  • Группы
  • Telegram chat
    • TON WIKI
    • TON Archive
    • TONpie Chats
    • ANP system
    • indicaton.io
  • Войти

  • Нет учётной записи? Зарегистрироваться

  • Login or register to search.