• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆-341  評論-2670  文章-0  trackbacks-0
            zero = \s.\z.z
            succ = \a.\s.\z.a s (s z)
            add = \a.\b.a succ b
            mul = \a.\b.a (add b) zero
            pow = \a.\b.a (mul b) (succ zero)

            true = \a.\b.a
            false = \a.\b.b
            if = \c.\t.\f.c t f
            not = \a.a false true
            and = \a.\b.a b false
            or = \a.\b.a true b
            xor = \a.\b.a (not b) b

            pair = \a.\b.\c.c a b
            fst = \p.p true
            snd = \p.p false
            const = true

            iszero = \n.n (const false) true
            pred = (\pack.\packpred.\n.snd (n packpred (pack n))) (\n.pair zero n) (\n.iszero (fst n) (pair (succ zero) (snd n)) (pair (succ zero) (pred (snd n)))
            sub = \a.\b.b pred a

            eq = \a.\b.and (iszero (sub a b)) (iszero (sub b a))
            ne=\a.\b.not (eq a b)
            lt = \a.\b.and (iszero (sub a b)) (not (iszero (sub b a)))
            le = \a.\b.or (eq a b) (lt a b)
            gt = \a.\b.not (le a b)
            ge = \a.\b.not (lt a b)

            div = (\init.\step.\a.\b.add (fst (a step (init a b))) (fst (b step (init b a)))) (\a.\b.pair zero (pair a b)) (\i.(ge fst(snd i)) (snd (snd i))) (pair (succ (fst i)) (sub (fst (snd i)) (snd (snd i))) (snd (snd i))) i)

            empty = pair zero zero
            cons = \a.\b.pair (succ zero) (pair a b)
            isempty = \l.iszero (fst l)
            head = \l.fst (snd l)
            tail = \l.snd (snd l)

            Y=\f.(\t.f (t t))(\t.f (t t))
            foldr = Y (\self.\f.\e.\l.(isempty l) e (f (head l) (self f e (tail l))))
            length = \l.foldr (true succ) zero l
            sum = \l.foldr add zero l
            product - \l.foldr mul (succ zero) l
            append = \h.\l.foldr cons l h
            reverse = \l.foldr (\a.\b.append b (const a empty)) empty l
            map = \f.\l.foldr (\a.\b.cons (f a) b) l
            zip = Y (\self.\a.\b.(or (isempty a) (isempty b)) empty (cons (pair (head a) (head b)) (self (tail a) (tail b))))
            flatten = \l.map append l
            posted on 2009-12-24 08:55 陳梓瀚(vczh) 閱讀(2511) 評論(4)  編輯 收藏 引用 所屬分類: 其他

            評論:
            # re: Lambda Calculus 2009-12-25 00:34 | 空明流轉
            呢一油
            波一
            。  回復  更多評論
              
            # re: Lambda Calculus 2009-12-25 01:09 | 陳梓瀚(vczh)
            @空明流轉
            何を喋るのは分からない  回復  更多評論
              
            # re: Lambda Calculus 2009-12-28 01:21 | radar
            對博客內容及評論都一頭霧水的飄過  回復  更多評論
              
            # re: Lambda Calculus 2010-01-08 01:14 | 太垃圾了
            好久不更新了  回復  更多評論
              
            伊人久久大香线蕉综合热线| 无码专区久久综合久中文字幕| 久久99精品国产99久久| 日韩亚洲欧美久久久www综合网| 久久伊人色| 青草国产精品久久久久久| 99久久精品这里只有精品 | 亚洲AV无一区二区三区久久| 久久av无码专区亚洲av桃花岛| 国产成人精品久久亚洲| 人妻无码αv中文字幕久久琪琪布 人妻无码精品久久亚瑟影视 | 久久精品国产亚洲AV忘忧草18 | 国产精品无码久久久久| 欧美日韩精品久久久久| 亚洲国产精品久久久久婷婷老年| 伊人久久大香线蕉综合5g| 久久亚洲国产中v天仙www| 亚洲伊人久久成综合人影院| 国产福利电影一区二区三区久久久久成人精品综合 | 久久综合色区| 亚洲精品国产成人99久久| 色偷偷偷久久伊人大杳蕉| 污污内射久久一区二区欧美日韩| 久久久久人妻精品一区二区三区| 精品国产乱码久久久久久浪潮| 国产精品国色综合久久| 人妻无码αv中文字幕久久| 香蕉久久夜色精品国产尤物| 久久精品视屏| 国内精品久久久久久久亚洲| 国产精品久久亚洲不卡动漫| 日日躁夜夜躁狠狠久久AV| 久久婷婷五月综合97色直播| 亚洲七七久久精品中文国产 | 色婷婷综合久久久久中文| 亚洲人成无码www久久久| 久久精品国产亚洲Aⅴ香蕉| 香港aa三级久久三级| 国产精品免费久久| 久久久久久一区国产精品| 久久国产午夜精品一区二区三区|