Об использовании Internal`Bag и какой-либо официальной документации? - PullRequest
6 голосов
/ 29 декабря 2011

( Mathematica версия: 8.0.4)

lst = Names["Internal`*"];
Length[lst]
Pick[lst, StringMatchQ[lst, "*Bag*"]]

дает

293    
{"Internal`Bag", "Internal`BagLength", "Internal`BagPart", "Internal`StuffBag"}

Руководство по программированию Mathematica Майкл Тротт, стр. 494, говорит о внутреннем контексте

"Но, как и в экспериментальном контексте, не существует никаких гарантий того, что поведение и синтаксис функций будут по-прежнему доступны в более поздних версиях Mathematica"

Также здесь есть упоминание о Bag функциях:

Реализация Quadtree в Mathematica

Но так как я видел, что многие эксперты Mathematica предлагают здесь Internal`Bag функции и используют их сами, я предполагаю, что было бы безопасно использовать их в реальном коде? и если да, у меня следующий вопрос:

Где я могу найти более официальное описание этих функций (API и т. Д.), Как можно найти в центре документации? Теперь о них ничего нет

??Internal`Bag
Internal`Bag
Attributes[Internal`Bag]={Protected}

Если я собираюсь начать использовать их, мне будет сложно узнать о новых функциях, просто взглянув на некоторые примеры, методом проб и ошибок, чтобы увидеть, что они делают. Интересно, может ли кто-нибудь здесь иметь более полный и самостоятельный документ об их использовании, описать API и многое другое, чем то, что там уже есть, или ссылку на такое место.

1 Ответ

1 голос
/ 09 февраля 2012

Контекст Internal в точности соответствует его названию: предназначен для внутреннего использования разработчиками Wolfram.

Это означает, среди прочего, что все, что вы можете найти там, относится к следующим вещам:

  • Скорее всего, вы не сможете найти на нем никакой официальной документации, поскольку она не предназначена для публичного использования.
  • Это не обязательно так, как недопустимые аргументы.(В некоторых из них ядро ​​может легко произойти.)
  • API может изменяться без уведомления.
  • Функция может полностью исчезнуть без уведомления.

ТеперьНа практике некоторые из них могут быть достаточно стабильными, но я настоятельно рекомендую вам держаться подальше от них.Использование недокументированных API-интерфейсов может легко доставить вам много боли и неприятного сюрприза в будущем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...