I&#x27;m not entirely sure that this is due to philosophical differences. The fact that Haskell is lazily evaluated makes writing functions that do only one thing much easier, since there is no performance hit for writing code like:<p><pre><code>  take 5 . filter (not . p) . drop 3
</code></pre>
In a strictly evaluated language. This would involve iterating over the list three different times. (Kind of not really, since take 5 isn&#x27;t going to be that expensive.)