六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 37|回复: 0

Section 2.1

[复制链接]

升级  20%

20

主题

20

主题

20

主题

秀才

Rank: 2

积分
80
 楼主| 发表于 2013-1-27 04:43:48 | 显示全部楼层 |阅读模式
2.1
{-data Ration x = R Integer Integer    instance (Show a) => Show (Ration a) where    showsPrec _ (R n d)  = shows (n `div` g).showString " % ". shows (d `div` g)        where g = gcd' n d    gcd' a b = if b==0 then a else gcd' b (a `mod` b)makeRat a = show a-}makeRat x y = (x',y')    where g = gcd x y          s = signum (x*y)          x'= s* abs (x `div` g)          y'= abs (y `div` g) 2.2
makePoint x y = (x,y)xPoint (x,_) = xyPoint (_,y) = ymakeSegment (a,b) (c,d) = ((a,b),(c,d))startSegment ((a,b),_) = (a,b)endSegment (_,(c,d)) = (c,d)midpointSegment ((a,b),(c,d)) = ((a+c)/2 ,(b+d)/2)printPoint (x,y) = do    putStrLn $ show (x,y)  2.3
makeSquare (a,b) (c,d) = ((a,b),(c,d))getCirm ((a,b),(c,d)) = 2*((abs (c-a)) + (abs (d-b)))getArea ((a,b),(c,d)) = abs (c-a) * abs (d-b) 2.4~2.5 略
  2.6 不太懂,Church 数
one = \f -> \x -> f xtwo = \f -> \x -> f (f x)plus a b = a.b 2-7~2-16 基本都是算法问题,不想做 TODO
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表