1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/turtle-sim-turtle-universe-issue-tracker

 / Детали:

Добавить официальный indexOf примитива

Предстоит сделать
Владелец
Создано  
27.04.2025

Сначала, текущий примитив position возвращает индекс найденного элемента, а если элемент не найден, возвращает false.
Затем, весьма запутанно, выражения position """" и position """" работают корректно и возвращают 0,
в то время как 0 + position "1""" вызывает ошибку,
что означает, что примитив position участвует в логических операциях без типизации, но при участии в математических операциях требует типизации.
Логика возвращения числа или false не только требует дополнительной типизации в NetLogo,
но и в JavaScript из-за неопределенности типов теряет возможность оптимизации JIT,
а поиск элемента в списке требует вызова функции equality, которая является "горой дерьма",
сначала проверяет, являются ли значениями пустыми, затем сравнивает их на равенство,
если значения не равны, то происходит серия проверок типа, проверки Nobody, проверки смерти, проверки черепахи, проверки цепочек, проверки списков и рекурсивного поиска элементов списка,
что приводит к выводу, что 0 != 1.
Если требуется указать начальную позицию поиска, то можно использовать slice для получения подстроки|подсписка, найти позицию и вычислить количество пропущенных элементов, что добавляет дополнительные затраты, сравнимые с lput.

Комментарий (0)

GitLife Service Account Задача создана
GitLife Service Account добавлено
 
NetLogo
label.
Развернуть журнал операций

Вход Перед тем как оставить комментарий

Статус
Ответственный
Контрольная точка
Pull Requests
Связанные запросы на слияние могут быть закрыты после их объединения
Ветки
Дата начала   -   Крайний срок
-
Закрепить/Открепить
Приоритет
Участники(1)
1
https://api.gitlife.ru/oschina-mirror/turtle-sim-turtle-universe-issue-tracker.git
git@api.gitlife.ru:oschina-mirror/turtle-sim-turtle-universe-issue-tracker.git
oschina-mirror
turtle-sim-turtle-universe-issue-tracker
turtle-sim-turtle-universe-issue-tracker