Without exlplicitly loading any libraries:
test003_3 :- try_parameters_permuted( [[a,b,c],R], R==abc).
/*
file_base_name([a,b,c],_15090). file_base_name([a,b,c],abc).
atomic_list_concat([a,b,c],_20378). atomic_list_concat([a,b,c],abc).
atom_string(_1896,[a,b,c]). atom_string(abc,[a,b,c]).
term_string(_6076,[a,b,c]). term_string(abc,[a,b,c]).
term_to_atom(_6236,[a,b,c]). term_to_atom(abc,[a,b,c]).
atom_codes(_4958,[a,b,c]). atom_codes(abc,[a,b,c]).
atom_chars(_5038,[a,b,c]). atom_chars(abc,[a,b,c]).
name(_5038,[a,b,c]). name(abc,[a,b,c]).
*/
I am currently trying to find existing functionality by searching for what is it supposed to do. I know I can have some false positives but it looks promising.
But I encounter some problems. What I could need is information about the types. I try out all existing prolog predicates.
Do I have to do with streams? What are input and output parameters? Does the predicate make harmful operations? At least for this task I forbid the swipl program to use the net and to use the filesystem via firejail.
I would appreciate it if I coud figure out which meta information are available for a predicate.
Regards.