<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body bgcolor="#ffffff" text="#000000">
<font size="+1">I would like to write a function that takes two lists
of numbers and returns a number. For simplicity, let's assume an
integer, i.e.<br>
myfunc:: [Integer]-&gt;[Integer]-&gt;Integer<br>
But I can't quite get things right when trying to <br>
define myfunc = ...<br>
&nbsp;and making the arguments implicit.<br>
<br>
My difficulty might be seen with the following two functions,<br>
let,<br>
<br>
f1 = (zipWith ($)) . (map&nbsp; (*)) <br>
<br>
f2 = sum<br>
<br>
<br>
if I set the types such that f1 returns [Integer] and sum accepts
[Integer] it seems that somehow I should be able to compose them in to
a single function that takes two lists and returns the number, but f1 .
f2 and numerous variations don't work. I can curry some list l and f1 .
(f2 l) works, but is there a way to get f1 and f2 combined into a
function that accepts two lists? <br>
<br>
<br>
My problem is not really about writing the function but about
composition. I can write the function with arguments or a local lambda&nbsp;
that suits my practical purpose. But the fact that I think I should be
able to compose f1 . f2 somehow reveals a conceptual misunderstanding
that I hope someone will help me clear up.<br>
<br>
Thank you,<br>
Britt Anderson<br>
</font>
</body>
</html>