--|集合,由其特征函数表示--使用函数表示数据的示例--2016年功能编程课程。--托马斯·哈格伦模块集合(集合(..),空、单例、插入、,并、交、差、补、,成员)其中newtype集合a=集合(a->Bool)空::集合bsingleton::公式a=>a->设置插入::公式a=>a->设置a->设置aunion::设置->设置->设置交集::设置->设置->设置补码::设置->设置差异::设置->设置->设置成员::a->设置a->Boolempty=设置(const False)单一x=集合(==x)插入x s=并集(单例x)sunion(集合f)(集合g)=集合(\x->f x ||g x)交集(集合f)(集合g)=集合(\x->f x&&g x)补码(集合f)=集合(非.f)差s1 s2=交集s1(补码s2)成员x(集合f)=f x