Какова цель `.Internal ()`? - PullRequest
       4

Какова цель `.Internal ()`?

0 голосов
/ 15 апреля 2020

См. Следующее. Я не понимаю, какова цель .Internal. Его документация не ясна. Может ли кто-нибудь помочь мне понять, когда .Internal требуется и зачем он нужен?

R> f=file('f.R', 'r')
R> .Internal(parse(f, n = -1, NULL, '?', 'f.R', encoding='unknown'))
expression(f = function(x) {
    x
})
R> f=file('f.R', 'r')
R> parse(f, n = -1, NULL, '?', 'f.R', encoding='unknown')
expression(f = function(x) {
    x
})

Чтобы лучше это понять, я хочу извлечь код C из базы R и скомпилировать его отдельно, а затем вызвать .Internal на скомпилированном двоичном файле. Есть ли способ сделать это?

1 Ответ

2 голосов
/ 15 апреля 2020

.Internal() - это один из интерфейсов функций, записанных в C в R. Другой отображается как .Primitive(). Вы можете прочитать о различиях в Главе 2 руководства "R Internals".

Вы не должны звонить .Internal() напрямую. Это так, что разработчики R могут писать такие функции, как parse(), которые делают некоторые вещи в R, а некоторые вещи в C. Если вы хотите сделать это, вы должны использовать .C(), .Call() или .External(). (Там также .Fortran() с интерфейсом Fortran.) Они описаны в руководстве "Написание R расширений".

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