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

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),接着再看更方便。

相关小说

惊!男友不是人 连载中
惊!男友不是人
满天星辰皆念你
(以弃)一次意外我发现男朋友竟然不是人,他和我在一起似乎另有企图,我对这个世界有了新的认知。这竟然是一个人、妖、鬼共存的世界,表面上互不打扰......
0.9万字1年前
白瑾的散文 连载中
白瑾的散文
陈云瑾
只是我的随笔而已
0.7万字1年前
双男主:尧心古事 连载中
双男主:尧心古事
请你拥抱我
萧忆×秦玖(双男)秦玖记忆不完整被人捡了回去,这些年苦苦修炼萧忆饶有兴趣看他,"长路漫漫,何不让我陪陪您呢"
4.4万字1年前
天降红颜:家有萌妖圆滚滚 连载中
天降红颜:家有萌妖圆滚滚
画颜妆
阴山,是仙帝居住的一座山,也是修仙者所向往的一个圣地。矗立在这山峰最高处的墨居阁,无疑就是强者之中的佼佼者。只不过在这之中,却也有那么一个特......
65.1万字1年前
他的眼里是有星星的 连载中
他的眼里是有星星的
糯糯一云朵
(作品已签约)讲述的是大联盟第一守护者林沐星和狐族传说中的智者段繁的故事。本人文笔渣,写的不好,不过还是欢迎小伙伴们来看的。
11.0万字1年前
女配修仙之远世 连载中
女配修仙之远世
遇喜
(第一次正经写文,也不知道咋样,将就看看吧,辣眼睛的话那就抱歉啦)女配不想逆袭,只想快点下线但别人偏不让她如愿最终飞升的被迫营业的故事•ᴗ•
3.7万字1年前