Mathematica: возможно ли сделать автоматический файл init.m для простых пакетов - PullRequest
1 голос
/ 24 января 2011

Большинство моих личных пакетов - это просто один m-файл, скажем, Foo.m, но обычно они заканчиваются на Foo/Foo.m, так что я могу также хранить связанные тесты и заметки в каталоге Foo.Чтобы разрешить загрузку пакетов с помощью <<Foo&#96;, я включаю Foo/init.m следующим образом:

With[{packagename="Foo"},
  Get@FileNameJoin@{ 
    DirectoryName@FindFile[packagename<>"`"],
    packagename<>".m"}]

Это прекрасно работает, если я не забываю обновить packagename при копировании init.m вновые пакеты, но мне было интересно, есть ли способ сделать полностью повторно используемую init.m для этого простого случая?

Просто для полноты, я не хочу переименовывать реализацию implementation.m.

1 Ответ

3 голосов
/ 24 января 2011

Я не совсем понимаю ваш вопрос, но в любом случае это предположение ...

Вы пробовали что-то вроде

packagename = StringDrop[DirectoryName[$Input], -1]  

в первой строке?

Редактировать: для дальнейшего использования

После теста Януса выяснилось, что правильное выражение:

packagename=StringDrop[$Input,-2]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...