[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