[GAP Forum] Displaying the list of GAP available functions
mfrincu at info.uvt.ro
mfrincu at info.uvt.ro
Tue Jan 30 20:46:25 GMT 2007
Basicaly what I'm trying to do is this:
Expose all the functions/operations(I thought again about it and I
think they should also be included) in a registry for example by name
and arguments and the package it belongs to. Then from a webservice
that acts as a gap wrapper i want to be able to call a certain
function with certain parameters. Functions can be added later, so I
goes that from time to time a program will check for new appearences.
Basically this is it. For now I have the service wrapper and i want to
get the available functions, their arguments and parent package.
Regards.
Marc Frincu.
Quoting Laurent Bartholdi <laurent.bartholdi at gmail.com>:
>> One more thing and I have no more questions:
>
> Don't worry!
>
>> Is there a way to find out the functions in a certain package? I know
>> that there is a way to display a package but a way to see what
>> functions it contains? (Perhaps a raw method of A:=the function list
>> when gap is started with no package; B:=the function list after the
>> package is loaded; C:=B-A ???)
>
> Yes, that should work. You may also assume that the package installs
> functions via DeclareGlobalFunction and InstallGlobalFunction. Then
> either use 'grep' to scan through the code, or use
> old_DeclareGlobalFunction := DeclareGlobalFunction;
> MakeReadWriteGlobal("DeclareGlobalFunction");
> funcs := [];
> DeclareGlobalFunction := function(arg) Add(funcs,arg[1]);
> CallFuncList(old_DeclareGlobalFunction,arg); end;
>
> which redefine DeclareGlobalFunction to first store its first argument
> in a list "funcs", and then call the original command.
>
> it seems strange that you want a list of functions without using the
> documentation. I assume it's because you want to automate some process
> and don't trust the documentation to be up-to-date or easily useable
> from within a program. If you're a bit more specific with what you
> want to do, we can help you better.
>
> best, laurent
>>
>> Best regards,
>> Marc Frincu
>>
>> Quoting Laurent Bartholdi <laurent.bartholdi at gmail.com>:
>>
>>> On 1/30/07, mfrincu at info.uvt.ro <mfrincu at info.uvt.ro> wrote:
>>>> Thanks for your answers.
>>>> It works but I have one more problem. Not all the results (when using:
>>>> Filtered(NamesSystemGVars(), str-> IsBoundGlobal(str) and
>>>> IsFunction(ValueGlobal(str)));) are functions. I also get results like
>>>> []:=, or {}:= or operations which I do not need. Is there any way to
>>>> further filter the results?
>>>
>>> Well, it seems you replied to your own question :)
>>>
>>> Filtered(NamesSystemGVars(), str-> IsBoundGlobal(str) and
>>> IsFunction(ValueGlobal(str)) and not IsOperation(ValueGlobal(str)));
>>> --
>>> Laurent Bartholdi \ laurent.bartholdi<at>gmail<dot>com
>>> EPFL SB SMA IMB MAD \ Téléphone: +41 21-6935458
>>> Station 8 \ Secrétaire: +41 21-6935501
>>> CH-1015 Lausanne, Switzerland \ Fax: +41 21-6930339
>>
>>
>>
>>
>
>
> --
> Laurent Bartholdi \ laurent.bartholdi<at>gmail<dot>com
> EPFL SB SMA IMB MAD \ Téléphone: +41 21-6935458
> Station 8 \ Secrétaire: +41 21-6935501
> CH-1015 Lausanne, Switzerland \ Fax: +41 21-6930339
More information about the Forum
mailing list