Note that concat_string/2 can be defined as
concat_string(List, String) :- join_string(List, "", String).
Success: join_string([usr,"local",bin], "/", "usr/local/bin"). join_string([1,2,3], " -> ", "1 -> 2 -> 3"). Error: join_string(A,"-",X). (Error 4). join_string([abc,D],",",X). (Error 4). join_string(art,",",X). (Error 5). join_string([a,b],3,X). (Error 5).