Re: the comma-at-end-of-line thing: I would sometimes write Prolog like so to avoid that issue:
goal :-
true
, subgoal(A, B)
, subgoal(B, C)
.
This is definitely not standard and I don't know if the WAM optimizes out the gratuitous choice point, but it certainly makes the code easier to work with.
It's not standard but that's how I write Prolog. I thing I got it from SQL?
I don't usually leave the full-stop on its own line though. You can always select the entire line, then move one down to cut it without catching the full stop. If that makes sense?