к

[] # [] = 0
(x : xs) # (y : ys) = x * y + (xs # ys)
_ # _ = 0
без последнего кейса функция упадает на списках разных длин
еще это записывается как
a # b = sum (zipWith (*) a b)
Size: a a a
к
[] # [] = 0
(x : xs) # (y : ys) = x * y + (xs # ys)
_ # _ = 0
T
AP
A
D
D
T
[] # [] = 0
(x : xs) # (y : ys) = x * y + (xs # ys)
_ # _ = 0
zipWith (*) a b
?AP
к
zipWith (*) a b
?T
D
D
AP
AP
T
[] # [] = 0
(x : xs) # (y : ys) = x * y + (xs # ys)
_ # _ = 0
A
T
AP
$ cat <<END > foo.hs
> #!/usr/bin/env runghc
> main = putStrLn "Hello!"
> END
$ chmod +x foo.hs
$ ./foo.hs
Hello!
к
A