> having difficulty knowing when to use (prog) or (run).
> bottomline is, when is it best to use one over the other?
'run' is more general and evaluating version, i.e. it's a function
suitable for manipulating programs (aka eval) with other bell and
whistles like "environment control". 'prog' is a "macro", i.e. a
convenience shortcut for writing text of a program by hand. You can
build the macro version on to of the evaluating version.