Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download

📚 The CoCalc Library - books, templates and other resources

132944 views
License: OTHER
1
module Intersect where
2
intersect :: (Ord t) => [t] -> [t] -> [t]
3
intersect a [] = []
4
intersect [] a = []
5
intersect (x:xs) (y:ys)
6
| x == y = x : intersect xs ys
7
| x < y = intersect xs (y:ys)
8
| y > y = intersect (x:xs) ys
9
10
intersectAll :: (Ord t) => [[t]] -> [t]
11
intersectAll (l:ls) = (foldr intersect l) ls
12
intersectAll [] = undefined
13
14
multiples n = [n*k | k <- [1..]]
15
commonMultiples a b c =
16
intersectAll [ multiples n | n <- [a,b,c]]
17