• <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
                經(jīng)過上一次的成功試驗,這次終于完成了剩余的表達式類型的類型推導(dǎo)。過程及結(jié)果如下:

                修改if函數(shù)的代碼,去掉類型聲明:
            1 def if cond t f = select cond of
            2                     case true : t
            3                     case false : f
            4                   end

                為了對lambda expression進行推導(dǎo),將makearray的表達式isub max 1替換成(\a->\b->isub a b) max 1:
            1 def makearray max = if (iequ max 0
            2                       empty 
            3                       (list max (makearray ((\a->\b->isub a b) max 1)))

                然后進行推導(dǎo)。由于推導(dǎo)的時候沒有根據(jù)依賴關(guān)系(函數(shù)可以循環(huán)依賴)來確定推導(dǎo)順序,因此采用了迭代的方法。編譯器不斷推導(dǎo)一直到無法得到更好的結(jié)果為止(實現(xiàn)的時候有一個很方便的判斷方法)。

                首先對if進行推導(dǎo)。因為cond使用了true和false進行模式匹配,因此cond一定是system.bool。其次,兩個表達式分別返回t與f,可以判斷t與f的類型必定相同。因此,可以很容易的得到if的結(jié)果:
            1   func if T1 :: (system.bool -> (<T1> -> (<T1> -> <T1>)))

                其次對makearray進行推導(dǎo)。進行到(\a->\b->isub a b)的時候,因為max類型位置,標記為?,1類型為system.int。因此該lambda expression的期望類型為?1 -> system.int -> ?2。因為isub a b,因此a一定是int,而且isub接受兩個int返回bool,因此該lambda expression的推導(dǎo)類型為system.int -> system.int -> system.bool。所以得到makearray的類型如下:
            1   func makearray :: (system.int -> (system.list system.int))

                結(jié)果跟昨天等價的更簡單的寫法一致。
            posted on 2008-10-06 06:47 陳梓瀚(vczh) 閱讀(1507) 評論(1)  編輯 收藏 引用 所屬分類: 腳本技術(shù)

            評論:
            # re: Kernal FP所有表達式種類實現(xiàn)類型推導(dǎo)! 2008-10-06 07:51 | 陳坤
            光看摘要:
            摘要: 經(jīng)過上一次的成功試驗,這次終于完成了生育
            我以為你在做什么雜交DNA實驗了  回復(fù)  更多評論
              
            久久夜色精品国产| 久久男人Av资源网站无码软件| A狠狠久久蜜臀婷色中文网| 久久综合久久综合九色| 久久人人爽人人精品视频| 无码人妻久久一区二区三区免费丨| 久久久无码人妻精品无码| 久久er国产精品免费观看8| 亚洲成色www久久网站夜月| 久久精品亚洲男人的天堂| 精品久久久久久久久午夜福利| 久久夜色撩人精品国产| 久久被窝电影亚洲爽爽爽| 亚洲伊人久久大香线蕉综合图片| 99久久精品九九亚洲精品| 久久久精品2019免费观看| 久久综合精品国产一区二区三区 | 人人妻久久人人澡人人爽人人精品| 久久免费的精品国产V∧| 久久精品国产欧美日韩99热| 九九久久99综合一区二区| 久久婷婷成人综合色综合| 欧美日韩精品久久久久| 久久精品亚洲乱码伦伦中文| 久久免费线看线看| 久久精品麻豆日日躁夜夜躁| 久久九九兔免费精品6| 麻豆国内精品久久久久久| 久久久久久噜噜精品免费直播| 久久婷婷国产麻豆91天堂| 久久无码av三级| 国产免费久久久久久无码| 一级做a爰片久久毛片16| 99精品伊人久久久大香线蕉| 久久er热视频在这里精品| 久久国产精品久久精品国产| 99久久精品费精品国产| 久久99亚洲综合精品首页| 久久亚洲精品无码观看不卡| 一级a性色生活片久久无| 7777久久久国产精品消防器材|