Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let rec closeAreas db p distance =
- match db with
- | [] -> [p]
- | x::xs -> let a=List.hd p.shape.polygon b=List.hd x.shape.polygon in
- if (dist a b <= distance)
- then (x::closeAreas xs p distance)@closeAreas db x distance
- else closeAreas xs p distance@closeAreas db x distance
- ;;
- let rec diff set1 set2 =
- match set1 with
- | [] -> []
- | x::xs -> if belongs x set2
- then diff xs set2
- else x::(diff xs set2)
- ;;
- let rec partRec db distance =
- match db with
- | [] -> [[]]
- | x::xs -> let close = closeAreas xs x d in
- let set = diff xs close in
- [close]@[partRec set distance]
- ;;
- let partition db f = partRec db f;;
Advertisement
Add Comment
Please, Sign In to add comment