The reason for this behavior is that Plot[]
has the attribute HoldAll
, i.e. basically its arguments stay in an unevaluated form. Consequently you can/should write (for your specific case):
Plot[Evaluate[# saturatedMoistureContent[t] & /@ Range[0.1, 1, 0.1]],
{t, 0, 50}, PlotLabels -> {"10%", "20%", "30%", "40%", "50%", "60%", "70%",
"80%", "90%", "100%"}]
or likewise:
Plot @@ {# saturatedMoistureContent[t] & /@ Range[0.1, 1, 0.1], {t, 0, 50}, PlotLabels -> {"10%", "20%", "30%", "40%", "50%", "60%",
"70%", "80%", "90%", "100%"}}