1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| variablesInType(Type,List_Variables):-
is_type(Type),!,
variablesInType(Type,[], List_Variables).
variablesInType(Type, List_Variables_In, List_Variables_Out):-
is_variable(Type),!,
reverse([Type | List_Variables_In], List_Variables_Out).
variablesInType(Type,List_Variables_In,List_Variables_Out):-
type_fleche(Type),!,
Type=..[_Symbol|Arguments],
Arguments=[Args|Rest],
is_variable(Args),!,
Rest1=..Rest,
is_type(Rest1),!,
variablesInType(Rest1,[Args|List_Variables_In],List_Variables_Out).
% variablesInType(Rest1,[Args1|List_Variables],List_Variables).
variablesInType(Type,List_Variables_In,List_Variables_Out):-
is_type(Type),!,
Type=..[_Symbol|Arguments],
Arguments=[Args|Rest],
is_variable(Args),!,
Rest1=..Rest,
is_type(Rest1),!,
variablesInType(Rest1,[Args|List_Variables_In],List_Variables_Out). |
Partager