Sum of multiples of 3 or 5 using functional programming
This is one of those programming problems where there’s a special trick that can give you a better algorithm, in this case constant-time instead of linear.

If you add the multiples of 3 and the multiples of 5, you’ll count the multiples of 15 twice. So subtract those out. The answer becomes (3+6+9+...+999) + (5+10+15+...+995) - (15+30+45+...+990).

Then, to get all the multiples of m from 1 to N, factor the series m+2·m+... to m· (1 + 2 + ... + ⌊N/m⌋). There’s a simple formula for the series from 1 up to some number, called the Gaussian formula after its discoverer, Carl Friedrich Gauss.  The story goes that he found it as a child, and when his math teacher ordered the whole class to add the numbers from 1 to 100, just to keep them busy so he could take a nap, young Carl shocked him by finding the answer in seconds.  It works on computers, too!  So, substitute this formula into the previous equation to get a constant-time formula for the sum of all multiples of m up to N.  Then substitute that formula into the paragraph above this one, with m = 3, 5 and 15.

Maybe you know all that.  The point of the exercise might have been to practice the specific idioms you used here, like list comprehension and reduction.  Now that you have, you might want to compare an optimal algorithm in functional style.  The last time I posted a better algorithm for a Project Euler problem, someone informed me that the point of Code Review is not to write a better answer myself, so I’ll leave that to you if you feel like it.