青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-341  評論-2670  文章-0  trackbacks-0
    我終于在實驗階段解決了這個困擾了我5個月(雖然實際上我花了3個星期)的問題。目標是這樣的:你寫程序,可以盡可能的不寫一些類型信息,譬如函數參數和返回值的類型信息等。我的編譯器幫你把它的類型算出來。

    已知函數如下:
  data list T = (empty | (list T (list T)))

 func isub :: (
int -> (int -> int)) alias "isub"

  func iequ :: (
int -> (int -> bool)) alias "iequ"

  func 
if T :: (bool -> (T -> (T -> T)))
  def 
if cond t f = 
    select cond of
      
case true : t
      
case false : f
    end

    這里有類型list T,empty返回list T(沒有上下文的時候T不知道),list 1(list 2 empty)返回數組[1,2]。isub減法,iequ判斷是否相等。于是我寫了一個函數makearray x返回[x , x-1 , x-2 , ... , 1]。也就是說,makearray 5返回[5,4,3,2,1],代碼如下:
1 def makearray max = 
2     if (iequ max 0
3         empty 
4         (list max (makearray (isub max 1)))
    函數的意思是,如果max==0則返回空數組,否則返回[max]加上makearray (max-1)。

    現在我并沒有為makearray定義任何類型,所以我的編譯器必須嘗試能否產生一個類型給他(有可能結果是模板函數):
1 func makearray :: (system.int -> (system.list system.int))

    方法如下(標紅字的部分為實際編碼中遇到困難的部分):
    首先,根據isub的類型int->int->int,可以判斷出isub max 1的結果是int,然后假設max是int。因為如果max不是int則肯定會發生語法錯誤。因為我的語言沒有任何隱式轉換。

    其次,makearray (isub max 1)的類型計算不出來,實際上還沒計算出來。標記類型為"?"

    然后,list max (makearray...)了。max為int,所以現在list所期望的類型是int->?->?。然后根據list的實際類型T->list T->list T,我們可以得出,這個表達式返回list int

    然后,empty返回list T。

    最后,iequ max 0顯然返回bool。根據if的類型信息bool->T->T->T,傳入參數bool、list T2和list int,顯然可以得到if在這個上下文中,T=list int。因此得到的結果就是makearray max返回list int。加上max是int,所以makearray的類型就是int->list int了。

    大框架出來了,只是還有三種表達式:lambda expression、let-in expression和select-case expression沒有解決。不過這個應該不麻煩了,因為方法都差不多。

    P.S.
    為了解決這個問題,我給類型本身建模,給出了一個定義和若干操作組成一個代數系統。你可以——
        Apply:將模板參數替換成另一些類型,得到新的新的類型。
        Solve:對比兩個類型,如果可以通過某些Apply從類型1轉到類型2,那么給出Apply所需要的參數。
        Equal:對比兩個類型是否完全相等。
        Merge:對比兩個類型,其中兩個類型都有模板參數。如果可以通過Apply將類型1和類型2都轉換到類型3,那么給出其中一個合適的類型3。這個時候可以通過Solve去獲得轉換的方法。
    通過這四個操作互相組合,加上一些定制的策略,就可以解類型方程組了,也就是這里所解決的問題。
posted on 2008-10-04 07:19 陳梓瀚(vczh) 閱讀(1876) 評論(3)  編輯 收藏 引用 所屬分類: 腳本技術

評論:
# re: Kernel FP 類型推導(Type Inference)實驗成功! 2008-10-04 10:01 | 空明流轉
很好,終于OK了。  回復  更多評論
  
# re: Kernel FP 類型推導(Type Inference)實驗成功! 2008-10-04 10:18 | 陳梓瀚(vczh)
我發現lazyness比type inference容易無窮多倍。半年前錯誤估計了工程量。  回復  更多評論
  
# re: Kernel FP 類型推導(Type Inference)實驗成功! 2008-10-06 06:30 | 陳坤
快點弄出來罷~~~  回復  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            怡红院av一区二区三区| 一区二区在线不卡| 亚洲视频在线观看网站| 亚洲区国产区| 欧美日韩在线观看视频| 亚洲午夜精品| 亚洲午夜一区二区| 国产亚洲成av人片在线观看桃| 午夜在线观看免费一区| 欧美在线一二三区| 亚洲第一狼人社区| 亚洲精品乱码久久久久久按摩观 | 另类图片国产| 久久亚洲综合网| av成人天堂| 一区二区日韩| 国产精品私拍pans大尺度在线| 久久久久久久久久久一区| 久久亚洲欧美国产精品乐播| 亚洲精品国精品久久99热| 亚洲精品久久久久久下一站| 国产精品一区二区久久| 欧美高清影院| 国产精品xvideos88| 久久精品91久久香蕉加勒比| 麻豆精品网站| 99re66热这里只有精品3直播 | 午夜欧美大尺度福利影院在线看| 午夜久久久久久| 亚洲国内高清视频| 亚洲午夜伦理| 亚洲日本免费| 久久爱另类一区二区小说| 亚洲乱码国产乱码精品精98午夜| 亚洲综合国产| 日韩小视频在线观看| 欧美在线视频在线播放完整版免费观看| 亚洲狠狠婷婷| 久久精品国产91精品亚洲| 亚洲视频网站在线观看| 久久综合九色综合欧美就去吻| 亚洲免费伊人电影在线观看av| 久久综合网色—综合色88| 性欧美video另类hd性玩具| 欧美电影在线观看完整版| 欧美专区第一页| 欧美日韩中文字幕日韩欧美| 欧美激情一区二区三级高清视频| 国产精品亚洲综合天堂夜夜| 亚洲精品亚洲人成人网| 尤物九九久久国产精品的特点| 亚洲婷婷在线| 中文在线不卡| 欧美日韩国产不卡| 亚洲国产精品第一区二区| 在线不卡免费欧美| 久久精品亚洲一区二区| 性xx色xx综合久久久xx| 欧美性猛交xxxx免费看久久久| 亚洲国产一区二区三区在线播 | 国产精品乱码人人做人人爱| 亚洲精品免费一二三区| 精品电影在线观看| 久久精品在这里| 老牛国产精品一区的观看方式| 国产伦精品一区二区三区免费迷| 亚洲一区www| 亚洲女爱视频在线| 国产精品美女久久久| 亚洲一品av免费观看| 亚洲一区二区免费在线| 国产精品www| 亚洲夜晚福利在线观看| 欧美在线资源| 国色天香一区二区| 久久综合久久美利坚合众国| 欧美a级片网| 亚洲美女在线观看| 欧美日韩一区二区三区高清| 一个人看的www久久| 亚洲欧美成人一区二区三区| 国产精品乱码一区二区三区| 亚洲欧美日韩电影| 久久综合狠狠综合久久综青草| 一区二区三区在线高清| 欧美3dxxxxhd| 99精品免费网| 久久久xxx| 亚洲成色777777在线观看影院| 欧美第一黄网免费网站| 99在线热播精品免费| 久久久久久久精| 亚洲精品视频免费| 国产精品午夜在线| 久久精品二区亚洲w码| 亚洲日本激情| 久久精品一区二区三区四区 | 国产精品欧美日韩一区| 久久久久久9| 亚洲精品乱码视频| 久久精品人人做人人爽电影蜜月 | 欧美日韩国产三级| 午夜精品一区二区三区电影天堂| 免费短视频成人日韩| 亚洲一区二区三区在线播放| 国产一区二区三区在线观看视频| 欧美不卡一区| 欧美一区二区黄| 91久久精品国产91性色tv| 欧美一区永久视频免费观看| 亚洲精选视频免费看| 国产日产欧美a一级在线| 欧美国产亚洲精品久久久8v| 亚洲欧美精品在线观看| 最新成人av网站| 美日韩精品免费观看视频| 亚洲午夜激情免费视频| 亚洲国产成人av在线| 国产精品久久久久9999高清| 欧美69视频| 久久久久久久久久码影片| 亚洲一区二区三区免费视频| 亚洲二区在线视频| 久久综合导航| 欧美综合二区| 亚洲欧美制服中文字幕| 日韩视频免费大全中文字幕| 一区二区亚洲精品| 国产乱理伦片在线观看夜一区| 欧美日韩中文字幕日韩欧美| 免费观看久久久4p| 久久久亚洲国产天美传媒修理工| 亚洲综合999| 亚洲午夜在线观看| 亚洲视频观看| 一区二区三区免费在线观看| 亚洲精选大片| 日韩视频在线观看免费| 亚洲国产日韩欧美在线动漫| 欧美高清不卡| 欧美成人午夜激情| 欧美jjzz| 亚洲电影免费观看高清完整版在线观看 | 在线亚洲免费| 一本色道久久综合一区 | 亚洲一区二区久久| 亚洲永久免费av| 亚洲欧美日韩综合| 午夜精品久久久久久久久久久久久 | 欧美日韩精品一区| 欧美日韩国产免费| 欧美视频二区| 亚洲国产精品成人综合色在线婷婷| 久久亚洲一区二区| 久久一区精品| 国产精品日韩在线一区| 含羞草久久爱69一区| 一区二区三区四区五区在线| 久久久国产一区二区三区| 亚洲韩国一区二区三区| 亚洲欧美日韩精品在线| 欧美激情一区二区三区| 国外成人性视频| 亚洲欧美精品| 亚洲人成绝费网站色www| 久久精品国产亚洲一区二区| 国产精品vvv| 亚洲蜜桃精久久久久久久| 久久综合电影| 欧美一级一区| 国产精品一区二区视频| 一本久道久久综合中文字幕| 欧美成人久久| 久久av红桃一区二区小说| 国产精品久久福利| 一本色道久久99精品综合 | 国产精品视频yy9099| 日韩视频一区二区三区在线播放| 欧美久久99| 亚洲第一福利视频| 黄网站色欧美视频| 久久精品在线免费观看| 亚洲一区久久久| 国产精品高潮在线| 亚洲无线观看| 亚洲免费观看高清完整版在线观看| 狼狼综合久久久久综合网| 伊人久久久大香线蕉综合直播| 久久精品五月婷婷| 亚洲视频在线二区| 国产精品美女久久久久aⅴ国产馆| 一区二区三区高清在线| 亚洲日本aⅴ片在线观看香蕉| 欧美国产在线视频| 99成人免费视频| 99精品视频网| 国产精品日韩一区| 欧美在线电影| 久久久999成人| 亚洲第一在线综合网站|