к

[] # [] = 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)
_ # _ = 0T
AP
A
D

D
T
[] # [] = 0
(x : xs) # (y : ys) = x * y + (xs # ys)
_ # _ = 0zipWith (*) a b ?AP
к
zipWith (*) a b ?T
D
D
AP
AP
T
[] # [] = 0
(x : xs) # (y : ys) = x * y + (xs # ys)
_ # _ = 0A
T
AP
$ cat <<END > foo.hs
> #!/usr/bin/env runghc
> main = putStrLn "Hello!"
> END
$ chmod +x foo.hs
$ ./foo.hs
Hello!
к
A