# A puzzling result of the ReplaceAll [duplicate]

I tried to do something below

Log[PDF[NormalDistribution[m, s], x]] /. Log[u_[x__] ] :> Plus @@ Log[List[x]]


which gives a desirable result that splits the expression into pieces. Note that PDF[NormalDistribution[m, s], x] was evaluated of the form Times[a,b,c] and thus u was identified as Times.

However, if I replace u_ by Times, i.e.,

Log[PDF[NormalDistribution[m, s], x]] /. Log[Times[x__] ] :> Plus @@ Log[List[x]]


then, I got an unexpected result that does not change the expression. Can you explain why I should not use Times even though I know that u_ will match Times in the first example?

• Take a look at HoldPattern. Times[x__] is evaluated. – Kuba Jun 5 '15 at 11:52
• @Kuba I don't think I understand you. Could you be more specific? – Sungmin Jun 5 '15 at 11:57

In[1]:= Log[PDF[NormalDistribution[m, s], x]] /.

BTW, you may also interested in PowerExpand.