数学联邦政治世界观
超小超大

Haskell和自然数之基础篇(一) (5-5)

-- 将lambda函数(\f -> f . f . f ...)封装成一个数据类型,因此用newtype来

-- 得到这个新的Church数的数据类型。

newtype Church = Church { runChurch :: forall a. (a -> a) -> a -> a }

-- | 先定义几个基本函数,用于给后面的运算定义使用

-- 0函数, 0个函数f的组合是函数id

zero = Church $ const id

-- 后继函数, 从n个函数f的组合得到n+1个函数f的组合

succChurch n = Church $ \f -> f . (runChurch n f)

-- 前驱函数,从n个函数f的组合得到n-1个函数f的组合

predChurch n = Church $ \f x -> runChurch n (\g h -> h (g f)) (const x) id

-- | 这是自然数上的归纳函数

iter :: a -> (a -> a) -> N -> a

iter z step n = runChurch n step z

-- | 这是加法的定义,就是将两个列表连接起来

plus :: N -> N -> N

plus m n = Church $ \f -> (runChurch n f) . (runChurch m f)

-- | 这是乘法的定义, 使用了归纳法

mult :: N -> N -> N

mult m n = Church $ runChurch n . runChurch m

-- | 这是幂运算的定义,使用了归纳法

pow :: N -> N -> N

pow m n = Church $ runChurch n (runChurch m)

数学联邦政治世界观提示您:看后求收藏(同人小说网http://tongren.me),接着再看更方便。

相关小说

清零世界 连载中
清零世界
苡绛
异变来的猝不及防,世界之外到底是什么,是和谐的日升日落,还是难以言说的地狱,这一点,无人知晓。十年前,人们日出而作日落而息,十年后,却只能躲......
5.4万字8个月前
碧落之水与风 连载中
碧落之水与风
三舞_91012679355915371
0.2万字8个月前
小故事合集(琳) 连载中
小故事合集(琳)
十三月_琳
之前那个不写了,简介在第一章
3.1万字8个月前
阿瑞亚大陆 连载中
阿瑞亚大陆
无名柳
(注:主角是短发的女性)人类世界以外的另一个空间,大陆的名字是直接引用了创世神的姓名。这片空间中诸多生灵相处和睦,无比美好。在那个扭曲微妙的......
32.6万字8个月前
宿主是社会主义接班人 连载中
宿主是社会主义接班人
柰椋
好吧,我还是不太喜欢写长篇,所以更文,就比较慢吧,还有就女主是那种,对闷骚吧,表面很温暖那种,内心戏比较多,面对男主,比较强势,当然是后面,......
5.9万字8个月前
ALL祺:朱雀 连载中
ALL祺:朱雀
结绮
不能透露剧情的哦,可以猜一猜,期待的收藏哦!作者学生,要写作业,可能不会天天更,有时间给你们更!
0.7万字8个月前