AZ-Prolog でも解が求まっていますが。。。。
# 文面どおりですと、
# ?- my_flatten([a, [b, [c], d], [e, f]], X).
# ではなく、
# ?- flatten([a, [b, [c], d], [e, f]], X).
# と入力されているのであれば、述語未定義ですので Noですね。
# なお、SWI-Prolog には flatten/2 という同様の働きをする
# 組込述語がありますので、定義述語でないほうを動かしたのでは?
AZ-Prolog version 9.24 (Win64/x64)
Copyright (C) SOFNEC CO., LTD. 1987-2016/02/08
| ?-[con].
| my_flatten([X | Xs], Ys) :-
| my_flatten(X, Ys1), my_flatten(Xs, Ys2), append(Ys1, Ys2, Ys).
| my_flatten(X, [X]) :- atomic(X), X \== [].
| my_flatten([], []).
| ^Z
yes
| ?-my_flatten([a,[b,[c],d],[e,f]],X).
X = [a,b,c,d,e,f]
yes