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

隨筆-341  評論-2670  文章-0  trackbacks-0
    國慶7天容易無聊,于是我打算實現一下以前失敗過的一種語言的特性:類型推導。于是順便做一做惰性計算吧。于是我嘗試設計了一門特性盡可能少的語言,并且強制讓一個函數的返回值僅跟輸入的參數有關。雖然這個特性不適合用來做IO,但是是有辦法解決的,而且不需要修改語言就可以直接支持。

    這門語言的定義及其簡單:
 1 type TYPE P1 P2..=CTOR T1 T2  | TYPE | 
 2 
 3 func FUNC::TYPE
 4 def FUNC P1 P2  =  exp
 5 
 6 
 7 unit=name
 8 unit=value
 9 unit=(name->exp)
10 exp=unit
11 exp=exp unit
12 exp=let DECLARATIONS in exp
13 exp=select exp of
14       case value : exp
15       case name : exp
16       case CTOR name/value  : exp
17       else : exp
18     end

    需要預先定義的部分也是很少的:

 1 type int;
 2 type char;
 3 type bool = true | false
 4 type list T = empty
 5             | list T (list T)
 6 
 7 func iadd::int->int->int call "add"
 8 func isub::int->int->int call "sub"
 9 func imul::int->int->int call "mul"
10 func idiv::int->int->int call "div"
11 func imod::int->int->int call "mod"
12 func ilg::int->int->bool call "ilg"
13 func ism::int->int->bool call "ism"
14 func iequ::int->int->bool call "iequ"
15 func chr::int->char call "chr"
16 func ord::char->int call "ord

    于是我嘗試實現了if、邏輯運算符以及itoa和atoi兩個函數:
 1 func not::bool->bool
 2 def not a = select a of
 3               true : false
 4               false : true
 5             end
 6 
 7 func and::bool->bool->bool
 8 def and a b = select a of
 9                 case true : b
10                 case false : false
11               end
12 
13 func or::bool->bool->bool
14 def aor a b = select a of
15                 case true : true
16                 case false : b
17               end
18 
19 func xor::bool->bool->bool
20 def xor a b = select a of
21                 case true : not b
22                 case false : b
23               end
24 
25 func T if::bool->T->T
26 def if cond t f = select cond of
27                     case true : t
28                     case false : f
29                   end
30 
31 func ineg::int->int
32 def ineg num = isub 0 num
33 
34 func coffset::char->int->char
35 def coffset c i = chr (iadd (ord c) i)
36 
37 func itoa::int->list char
38 def itoa a = if (iequ a 0) (list '0' empty) (if (ism a 0)
39                (list '-' (itoa (ineg a)))
40                let
41                  func _itoa::int->(list char)->(list char)
42                  def _itoa a chs = select a of
43                                      case 0 : chs
44                                      case else : _itoa (div a 10) (list (coffset '0' (mod a 10)) chs)
45                                    end
46                in _itoa a empty)
47 
48 func atoi::list char->int
49 def atoi chs = select chs of
50                  case empty : 0
51                  case list '-' chs : ineg (atoi chs)
52                  case c chs : iadd (imul 10 (isub (ord c) (ord '0'))) (atoi chs)
53                end

    當然,語法絕大部分抄了haskell和LISP,因為實在不想再重新設計了,反正到頭來差不多也是這個樣子的。7天應該能做完它。
posted on 2008-09-28 07:14 陳梓瀚(vczh) 閱讀(2165) 評論(4)  編輯 收藏 引用 所屬分類: 腳本技術

評論:
# re: 最小內核語言 2008-09-28 16:32 | 沈臻豪(foxtail)
正如你所說的,真無聊╮(╯_╰)╭  回復  更多評論
  
# re: 最小內核語言 2008-09-28 18:08 | haskell
^_^  回復  更多評論
  
# re: 最小內核語言 2008-09-28 18:26 | 同道中人
把玩C語言把不了C罩杯,推導方程式推不倒軟妹子。
十一居然只能做這個,真是令人感傷,  回復  更多評論
  
# re: 最小內核語言 2008-09-28 21:47 | 陳梓瀚(vczh)
唉,今年純屬特殊情況,有那么點兒小問題。

話說,樓上不知道喜歡推倒二次元妹子還是三次元妹子呢……  回復  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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成人| 亚洲在线国产日韩欧美| 99精品国产高清一区二区| 欧美日韩免费一区| 香港成人在线视频| 久久成人在线| 亚洲欧洲在线一区| 日韩一级精品| 国产日韩精品一区二区| 欧美国产成人精品| 欧美午夜精彩| 六月婷婷久久| 欧美日韩人人澡狠狠躁视频| 性亚洲最疯狂xxxx高清| 久久午夜影视| 亚洲欧美在线一区| 巨胸喷奶水www久久久免费动漫| 日韩亚洲欧美在线观看| 亚洲尤物在线视频观看| 亚洲国产高清一区二区三区| 亚洲免费精品| 在线成人h网| 亚洲一区二区免费看| 亚洲激情视频在线播放| 亚洲一区二区三区在线看| 91久久精品国产91久久性色tv| 亚洲深爱激情| 亚洲精品免费在线| 欧美一区二区三区精品| 亚洲视频香蕉人妖| 久久精品视频在线播放| 亚洲午夜黄色| 欧美高清免费| 玖玖在线精品| 国产丝袜美腿一区二区三区| 99在线精品视频在线观看| 国内精品国语自产拍在线观看| 亚洲精一区二区三区| 伊人久久亚洲美女图片| 亚洲综合精品自拍| 在线一区观看| 欧美精品18+| 欧美成人免费小视频| 国产日本亚洲高清| 亚洲图片自拍偷拍| 亚洲视频在线二区| 欧美国产日韩一区二区三区| 免费国产自线拍一欧美视频| 国产精品一区一区三区| 夜夜嗨av一区二区三区四季av | 欧美影院视频| 午夜久久久久久| 欧美精品乱码久久久久久按摩| 蜜桃久久av| 狠狠色综合播放一区二区| 亚洲欧美成人网| 亚洲宅男天堂在线观看无病毒| 欧美日韩国产成人在线免费| 亚洲国产导航| 亚洲三级电影全部在线观看高清| 久久全球大尺度高清视频| 久久综合久久久久88| 一区二区三区在线免费播放| 翔田千里一区二区| 欧美在线一级视频| 国内欧美视频一区二区| 欧美在线观看www| 久久日韩精品| 在线成人中文字幕| 美女视频网站黄色亚洲| 亚洲国产mv| 亚洲视频福利| 国产日韩精品入口| 久久精品三级| 欧美激情一区二区三区 | 国产精品av免费在线观看| 亚洲精品久久久久久久久久久| 亚洲视频一区在线| 国产精品入口尤物| 欧美一区二区在线免费观看| 老司机免费视频久久| 亚洲第一伊人| 欧美日在线观看| 小黄鸭精品密入口导航| 噜噜噜久久亚洲精品国产品小说| 亚洲国产1区| 欧美日本在线观看| 午夜亚洲一区| 亚洲电影免费在线观看| 亚洲在线免费视频| 在线观看不卡| 欧美日韩在线播放一区二区| 午夜一区二区三区在线观看| 欧美风情在线| 欧美一区深夜视频| 亚洲电影免费在线观看| 欧美日韩亚洲一区二区三区| 亚洲欧美日本精品| 亚洲国产日韩欧美| 久久精品国产69国产精品亚洲| 亚洲欧洲日本国产| 国产免费成人av| 欧美va天堂| 欧美在线观看日本一区| 亚洲日本视频| 免费在线观看精品| 亚洲欧美日韩国产精品| 亚洲精品久久久久久下一站| 国产精品制服诱惑| 欧美日产在线观看| 久久免费高清| 午夜精品99久久免费| 亚洲欧洲三级电影| 久久综合久久久久88| 午夜精品在线看| 99综合电影在线视频| 影音先锋亚洲视频| 国产欧美日韩另类一区| 欧美精品18videos性欧美| 久久久美女艺术照精彩视频福利播放 | 久久九九全国免费精品观看| 国产精品99久久久久久人| 亚洲人成人一区二区在线观看| 国产欧美日韩综合| 国产精品久久久久久久久免费樱桃| 免费观看日韩| 麻豆免费精品视频| 久久视频在线看| 欧美一级二区| 欧美一级精品大片| 欧美一区二区三区免费观看| 亚洲永久免费| 亚洲一区亚洲| 亚洲欧美精品一区| 亚洲欧美中文字幕| 亚洲欧美国产精品桃花| 亚洲一区在线观看视频 | 久久综合九色综合欧美就去吻 | 亚洲欧洲精品一区二区三区波多野1战4 | 欧美亚洲免费| 午夜日韩av| 欧美在线一级va免费观看| 欧美一区日韩一区| 久久成人av少妇免费| 久久精品国语| 免费成人你懂的| 欧美成人国产va精品日本一级| 猛干欧美女孩| 欧美激情亚洲视频| 亚洲另类一区二区| 在线视频欧美日韩精品| 亚洲一区二区三区乱码aⅴ蜜桃女| 在线视频中文亚洲| 香蕉久久一区二区不卡无毒影院| 亚洲女爱视频在线| 久久成人资源| 美女性感视频久久久| 欧美精品在线视频| 国产精品久久国产精品99gif | 国产亚洲欧洲一区高清在线观看| 国产在线不卡| 亚洲经典在线| 亚洲一区图片| 久久久xxx| 欧美激情精品久久久久久久变态| 亚洲日本黄色| 午夜国产精品视频| 久热精品在线视频| 欧美午夜精品久久久久免费视| 国产精品综合av一区二区国产馆| 国产一区二区毛片| 亚洲老板91色精品久久| 香蕉精品999视频一区二区| 久久一区二区三区四区五区| 亚洲国产成人91精品| 亚洲综合欧美| 美女视频黄免费的久久| 国产精品高潮呻吟久久av黑人| 激情欧美日韩一区| 亚洲天堂黄色| 牛牛精品成人免费视频| 一区二区三区高清视频在线观看| 欧美在线中文字幕| 欧美色视频日本高清在线观看| 狠狠色丁香婷婷综合影院| 在线一区免费观看| 欧美a级一区二区| 亚洲自拍偷拍福利| 欧美激情综合五月色丁香小说| 国产亚洲欧美色| 亚洲一区不卡| 欧美激情亚洲精品| 欧美一级欧美一级在线播放| 欧美女主播在线| 91久久精品国产91久久性色tv| 欧美在线视频不卡| 一本一道久久综合狠狠老精东影业| 久久亚洲一区二区三区四区| 国产日本欧美一区二区|