Я писал пакет, используя стандартный подход:
Begin["Utilities`"] (* package name *)
myFunction::usage = ""
Begin["`Private`"]
(* definition of myFunction here *)
End[]
EndPackage[]
и заметил, что вызовы myFunction в записной книжке (после правильного импорта пакета) дают загадочные результаты. Копирование вставки определения функции в блокнот дает ожидаемый результат.
Это происходит как минимум для двух функций в пакете. Первый довольно прост:
IdenticallySampledQ[lists_]:=AllTrue[lists,XYListQ]&&(SameQ@@(getX/@lists))
, который пытается проверить, содержит ли списки список списков вида {{x1, y1}, ..., {xn, yn}}, таких, что все значения х всех списков идентичны. И XYListQ [], и getX [] определены в одном пакете, но в другом блоке Begin [] ... End [], но общедоступны в пакете.
Вторая функция, для которой неожиданно Поведение происходит - это функция, которая возвращает два графика: каким-то образом второй возвращаемый график никогда не содержит данных в кадре, а первый -.