- conversation(Messages, Reste, X);
- true ->
- Enfants = enfants(M),
- Parents = parents(M),
- % un message est dit externe si un de ses parent ne fait pas partie de la conversation ou si un de ses parents fait partie de X
- Est_message_externe = Parents -- Messages =/= [] orelse intersection(Parents, X) =/= [],
- conversation([M | Messages], Reste ++ Enfants, if Est_message_externe -> [M | X]; true -> X end)
+ conversation(Messages, Reste, X);
+ true ->
+ Enfants = enfants(M),
+ Parents = parents(M),
+ % un message est dit externe si un de ses parent ne fait pas partie de la conversation ou si un de ses parents fait partie de X
+ Est_message_externe = Parents -- Messages =/= [] orelse intersection(Parents, X) =/= [],
+ conversation([M | Messages], lists:merge(Reste, Enfants), if Est_message_externe -> [M | X]; true -> X end)