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

隨筆-341  評論-2670  文章-0  trackbacks-0
    新加入的Expected語法已經完全支持了。使用了Expected的符號會因為調用者的不同而使用不同的scope內的函數。代碼如下:

    首先,有main單元:
 1 module main
 2 import system
 3 import sysutils
 4 import list
 5 
 6 func eq T :: T -> T -> bool expected
 7 
 8 def exists e xs =
 9     select xs of
10         case list x tail : if(eq e x) true (exists e tail)
11         case empty : false
12     end
13 
14 def eq a b = iequ a b
15 def eq a b = fequ a b
16 
17 def main score = if (flt score 60.0"fail" "pass"
18 
19 def ints = list 1 (list 2 (list 3 empty))
20 def floats = list 1.0 (list 2.0 (list 3.0 empty))
21 def chars = "vczh"
22 
23 def main2 = exists 0 ints
24 def main3 = exists 0.0 floats
    這里有一個eq的expected類型T->T->T->bool,然后還有兩個用于整數和實數的eq函數。

    其次,有main2單元:
1 module main2
2 import main
3 
4 def eq a b = iequ (ord a) (ord b)
5 
6 def main2 = exists 0 ints
7 def main3 = exists 0.0 floats
8 def main4 = exists 'a' chars
    這里有一個用于字符的eq函數。

    如果我們將def main4 = exists 'a' chars加入main模塊的話則會有錯誤:
1 生成符號表時發生錯誤
2 錯誤[1]    模塊:main    行號:10
3 信息:符號"eq"無法匹配到函數,類型:(system.char -> (system.char -> system.bool))。

    因為這個時候eq存在于main2,main中的函數調用exists總是看到main中的內容。但是在main2就不同了,因為eq是expected的,main2調用的exists就可以看到main2的內容了。我們就可以看到期望的結果:
  1     module main::main
  2     import list
  3     import system
  4     import sysutils
  5     func eq T :: (<T> -> (<T> -> system.bool)) expected
  6     func chars :: (system.list system.char) codefrom 7
  7     func eq :: (system.int -> (system.int -> system.bool)) codefrom 2
  8     func eq :: (system.float -> (system.float -> system.bool)) codefrom 3
  9     func exists T1 :: (<T1> -> ((system.list <T1>-> system.bool)) codefrom 1 <Depends on expected functions>
 10     func floats :: (system.list system.float) codefrom 6
 11     func ints :: (system.list system.int) codefrom 5
 12     func main :: (system.float -> (system.list system.char)) codefrom 4
 13     func main2 :: system.bool codefrom 8
 14     func main3 :: system.bool codefrom 9
 15 
 16 【Code Unit main2】
 17     module main2::main2
 18     import main
 19     func eq :: (system.char -> (system.char -> system.bool)) codefrom 0
 20     func main2 :: system.bool codefrom 1
 21     func main3 :: system.bool codefrom 2
 22     func main4 :: system.bool codefrom 3
 23 
 24 【Assembly Unit main】
 25 
 26     [Information]
 27         Name             : main
 28         Function Count   : 10
 29         Slot Count       : 13
 30 
 31     [Function]
 32         Function Name    : exists
 33         Unique Name      : [callfrom:main2]main::exists::#1
 34         Owner Unit       : main
 35         Level            : 0
 36         External Command : 
 37         Instance         : <NULL>
 38 
 39     [Function]
 40         Function Name    : exists
 41         Unique Name      : [callfrom:main]main::exists::#1
 42         Owner Unit       : main
 43         Level            : 0
 44         External Command : 
 45         Instance         : <NULL>
 46 
 47     [Function]
 48         Function Name    : chars
 49         Unique Name      : main::chars::#7
 50         Owner Unit       : main
 51         Level            : 0
 52         External Command : 
 53         Instance         : main::chars::#7::(system.list system.char)
 54 
 55     [Function]
 56         Function Name    : eq
 57         Unique Name      : main::eq::#2
 58         Owner Unit       : main
 59         Level            : 0
 60         External Command : 
 61         Instance         : main::eq::#2::(system.int -> (system.int -> system.bool))
 62 
 63     [Function]
 64         Function Name    : eq
 65         Unique Name      : main::eq::#3
 66         Owner Unit       : main
 67         Level            : 0
 68         External Command : 
 69         Instance         : main::eq::#3::(system.float -> (system.float -> system.bool))
 70 
 71     [Function]
 72         Function Name    : floats
 73         Unique Name      : main::floats::#6
 74         Owner Unit       : main
 75         Level            : 0
 76         External Command : 
 77         Instance         : main::floats::#6::(system.list system.float)
 78 
 79     [Function]
 80         Function Name    : ints
 81         Unique Name      : main::ints::#5
 82         Owner Unit       : main
 83         Level            : 0
 84         External Command : 
 85         Instance         : main::ints::#5::(system.list system.int)
 86 
 87     [Function]
 88         Function Name    : main2
 89         Unique Name      : main::main2::#8
 90         Owner Unit       : main
 91         Level            : 0
 92         External Command : 
 93         Instance         : main::main2::#8::system.bool
 94 
 95     [Function]
 96         Function Name    : main3
 97         Unique Name      : main::main3::#9
 98         Owner Unit       : main
 99         Level            : 0
100         External Command : 
101         Instance         : main::main3::#9::system.bool
102 
103     [Function]
104         Function Name    : main
105         Unique Name      : main::main::#4
106         Owner Unit       : main
107         Level            : 0
108         External Command : 
109         Instance         : main::main::#4::(system.float -> (system.list system.char))
110 
111     [Slot Item]
112         Unique Name      : [callfrom:main2]main::exists::#1::(system.char -> ((system.list system.char-> system.bool))
113         Parent Slot      : <NULL>
114         Owner Function   : [callfrom:main2]main::exists::#1
115             0 = sysutils::if::#9::(system.bool -> (system.bool -> (system.bool -> system.bool)))
116             1 = main2::eq::#0::(system.char -> (system.char -> system.bool))
117             2 = [callfrom:main2]main::exists::#1::(system.char -> ((system.list system.char-> system.bool))
118 
119     [Slot Item]
120         Unique Name      : [callfrom:main2]main::exists::#1::(system.float -> ((system.list system.float-> system.bool))
121         Parent Slot      : <NULL>
122         Owner Function   : [callfrom:main2]main::exists::#1
123             0 = sysutils::if::#9::(system.bool -> (system.bool -> (system.bool -> system.bool)))
124             1 = main::eq::#3::(system.float -> (system.float -> system.bool))
125             2 = [callfrom:main2]main::exists::#1::(system.float -> ((system.list system.float-> system.bool))
126 
127     [Slot Item]
128         Unique Name      : [callfrom:main2]main::exists::#1::(system.int -> ((system.list system.int-> system.bool))
129         Parent Slot      : <NULL>
130         Owner Function   : [callfrom:main2]main::exists::#1
131             0 = sysutils::if::#9::(system.bool -> (system.bool -> (system.bool -> system.bool)))
132             1 = main::eq::#2::(system.int -> (system.int -> system.bool))
133             2 = [callfrom:main2]main::exists::#1::(system.int -> ((system.list system.int-> system.bool))
134 
135     [Slot Item]
136         Unique Name      : [callfrom:main]main::exists::#1::(system.float -> ((system.list system.float-> system.bool))
137         Parent Slot      : <NULL>
138         Owner Function   : [callfrom:main]main::exists::#1
139             0 = sysutils::if::#9::(system.bool -> (system.bool -> (system.bool -> system.bool)))
140             1 = main::eq::#3::(system.float -> (system.float -> system.bool))
141             2 = [callfrom:main]main::exists::#1::(system.float -> ((system.list system.float-> system.bool))
142 
143     [Slot Item]
144         Unique Name      : [callfrom:main]main::exists::#1::(system.int -> ((system.list system.int-> system.bool))
145         Parent Slot      : <NULL>
146         Owner Function   : [callfrom:main]main::exists::#1
147             0 = sysutils::if::#9::(system.bool -> (system.bool -> (system.bool -> system.bool)))
148             1 = main::eq::#2::(system.int -> (system.int -> system.bool))
149             2 = [callfrom:main]main::exists::#1::(system.int -> ((system.list system.int-> system.bool))
150 
151     [Slot Item]
152         Unique Name      : main::chars::#7::(system.list system.char)
153         Parent Slot      : <NULL>
154         Owner Function   : main::chars::#7
155 
156     [Slot Item]
157         Unique Name      : main::eq::#2::(system.int -> (system.int -> system.bool))
158         Parent Slot      : <NULL>
159         Owner Function   : main::eq::#2
160             3 = system::iequ::$kernelfp::iequ::(system.int -> (system.int -> system.bool))
161 
162     [Slot Item]
163         Unique Name      : main::eq::#3::(system.float -> (system.float -> system.bool))
164         Parent Slot      : <NULL>
165         Owner Function   : main::eq::#3
166             4 = system::fequ::$kernelfp::fequ::(system.float -> (system.float -> system.bool))
167 
168     [Slot Item]
169         Unique Name      : main::floats::#6::(system.list system.float)
170         Parent Slot      : <NULL>
171         Owner Function   : main::floats::#6
172 
173     [Slot Item]
174         Unique Name      : main::ints::#5::(system.list system.int)
175         Parent Slot      : <NULL>
176         Owner Function   : main::ints::#5
177 
178     [Slot Item]
179         Unique Name      : main::main2::#8::system.bool
180         Parent Slot      : <NULL>
181         Owner Function   : main::main2::#8
182             7 = [callfrom:main]main::exists::#1::(system.int -> ((system.list system.int-> system.bool))
183             8 = main::ints::#5::(system.list system.int)
184 
185     [Slot Item]
186         Unique Name      : main::main3::#9::system.bool
187         Parent Slot      : <NULL>
188         Owner Function   : main::main3::#9
189             9 = [callfrom:main]main::exists::#1::(system.float -> ((system.list system.float-> system.bool))
190             10 = main::floats::#6::(system.list system.float)
191 
192     [Slot Item]
193         Unique Name      : main::main::#4::(system.float -> (system.list system.char))
194         Parent Slot      : <NULL>
195         Owner Function   : main::main::#4
196             5 = sysutils::if::#9::(system.bool -> ((system.list system.char-> ((system.list system.char-> (system.list system.char))))
197             6 = system::flt::$kernelfp::flt::(system.float -> (system.float -> system.bool))
198 
199 【Assembly Unit main2】
200 
201     [Information]
202         Name             : main2
203         Function Count   : 4
204         Slot Count       : 4
205 
206     [Function]
207         Function Name    : eq
208         Unique Name      : main2::eq::#0
209         Owner Unit       : main2
210         Level            : 0
211         External Command : 
212         Instance         : main2::eq::#0::(system.char -> (system.char -> system.bool))
213 
214     [Function]
215         Function Name    : main2
216         Unique Name      : main2::main2::#1
217         Owner Unit       : main2
218         Level            : 0
219         External Command : 
220         Instance         : main2::main2::#1::system.bool
221 
222     [Function]
223         Function Name    : main3
224         Unique Name      : main2::main3::#2
225         Owner Unit       : main2
226         Level            : 0
227         External Command : 
228         Instance         : main2::main3::#2::system.bool
229 
230     [Function]
231         Function Name    : main4
232         Unique Name      : main2::main4::#3
233         Owner Unit       : main2
234         Level            : 0
235         External Command : 
236         Instance         : main2::main4::#3::system.bool
237 
238     [Slot Item]
239         Unique Name      : main2::eq::#0::(system.char -> (system.char -> system.bool))
240         Parent Slot      : <NULL>
241         Owner Function   : main2::eq::#0
242             0 = system::iequ::$kernelfp::iequ::(system.int -> (system.int -> system.bool))
243             1 = system::ord::$kernelfp::ord::(system.char -> system.int)
244             2 = system::ord::$kernelfp::ord::(system.char -> system.int)
245 
246     [Slot Item]
247         Unique Name      : main2::main2::#1::system.bool
248         Parent Slot      : <NULL>
249         Owner Function   : main2::main2::#1
250             3 = [callfrom:main2]main::exists::#1::(system.int -> ((system.list system.int-> system.bool))
251             4 = main::ints::#5::(system.list system.int)
252 
253     [Slot Item]
254         Unique Name      : main2::main3::#2::system.bool
255         Parent Slot      : <NULL>
256         Owner Function   : main2::main3::#2
257             5 = [callfrom:main2]main::exists::#1::(system.float -> ((system.list system.float-> system.bool))
258             6 = main::floats::#6::(system.list system.float)
259 
260     [Slot Item]
261         Unique Name      : main2::main4::#3::system.bool
262         Parent Slot      : <NULL>
263         Owner Function   : main2::main4::#3
264             7 = [callfrom:main2]main::exists::#1::(system.char -> ((system.list system.char-> system.bool))
265             8 = main::chars::#7::(system.list system.char)

    我們可以看到main模塊里面出現了兩個不同的exists函數:
 1     [Function]
 2         Function Name    : exists
 3         Unique Name      : [callfrom:main2]main::exists::#1
 4         Owner Unit       : main
 5         Level            : 0
 6         External Command : 
 7         Instance         : <NULL>
 8 
 9     [Function]
10         Function Name    : exists
11         Unique Name      : [callfrom:main]main::exists::#1
12         Owner Unit       : main
13         Level            : 0
14         External Command : 
15         Instance         : <NULL>
posted on 2008-11-03 05:41 陳梓瀚(vczh) 閱讀(1687) 評論(0)  編輯 收藏 引用 所屬分類: 腳本技術
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久综合九色综合欧美狠狠| 亚洲自拍偷拍一区| 欧美午夜一区二区福利视频| 欧美综合激情网| 欧美在线视频a| 久久欧美肥婆一二区| 免费日韩成人| 欧美日韩精品伦理作品在线免费观看| 欧美精品一区在线观看| 欧美日韩在线观看一区二区| 国产精品久久久久一区| 国产一区二区精品久久91| 红桃视频国产一区| 亚洲国产美国国产综合一区二区| 1204国产成人精品视频| 夜夜爽99久久国产综合精品女不卡| 亚洲一二三区精品| 亚洲午夜成aⅴ人片| 亚洲在线第一页| 亚洲欧美中文在线视频| 亚洲欧美一区二区视频| 亚洲欧美久久久久一区二区三区| 一区二区三区欧美在线观看| 制服丝袜亚洲播放| 羞羞色国产精品| 久久精品理论片| 麻豆精品精华液| 国产日韩欧美在线看| 欧美黄色一级视频| 91久久线看在观草草青青| 久久国产一区二区三区| 老司机精品福利视频| 亚洲国产成人porn| 亚洲一区亚洲二区| 老司机免费视频一区二区| 欧美日韩精品免费观看视频| 国产日本欧美一区二区| 亚洲免费观看在线观看| 欧美中文字幕在线播放| 亚洲激情视频| 久久精品人人做人人爽| 欧美色网在线| 亚洲精品激情| 久久精品久久综合| 亚洲系列中文字幕| 欧美日韩精品在线视频| 91久久极品少妇xxxxⅹ软件| 久久精品亚洲| 亚洲一区久久| 国产精品成人国产乱一区| 日韩系列在线| 亚洲国产日韩一区| 欧美成人精品福利| 亚洲激情女人| 欧美成人a∨高清免费观看| 欧美在线视频观看| 国际精品欧美精品| 久久久久久久欧美精品| 亚洲欧美日韩一区在线观看| 久久riav二区三区| 亚洲午夜久久久久久久久电影网| 欧美成人精品高清在线播放| 激情五月综合色婷婷一区二区| 亚洲欧美日本另类| 一本久久青青| 欧美小视频在线| 亚洲欧美日本国产专区一区| 亚洲色图自拍| 国产精品人人爽人人做我的可爱| 亚洲一区二区三区四区五区午夜| 亚洲伦伦在线| 欧美视频二区| 午夜精品福利电影| 性欧美长视频| 在线精品亚洲| 亚洲黄色在线看| 欧美日韩一区在线| 午夜精品一区二区三区在线| 亚洲在线日韩| 伊人久久亚洲热| 亚洲黄色毛片| 国产精品成av人在线视午夜片| 亚洲少妇在线| 欧美一区二区三区在线观看| 蜜桃视频一区| 欧美三级日本三级少妇99| 一区二区三区四区五区精品视频 | 日韩午夜中文字幕| 欧美日韩日本网| 欧美一级专区免费大片| 久久精品理论片| 亚洲精品一区二区三区不| 亚洲人成网站影音先锋播放| 欧美视频第二页| 久久这里有精品视频| 欧美成人高清| 欧美一区二区三区精品| 欧美在线资源| 中国成人亚色综合网站| 欧美亚洲一区二区三区| 亚洲激情第一页| 亚洲欧美国产日韩天堂区| 亚洲电影在线免费观看| 日韩一区二区久久| 伊大人香蕉综合8在线视| 亚洲欧洲午夜| 国内一区二区三区在线视频| 亚洲区免费影片| 国内久久精品视频| 99精品久久久| 亚洲三级网站| 欧美影院成年免费版| 99热在这里有精品免费| 欧美一级视频| 亚洲欧美精品中文字幕在线| 久久午夜精品一区二区| 午夜久久久久久| 欧美男人的天堂| 麻豆精品在线播放| 国产精品igao视频网网址不卡日韩| 久久人人爽爽爽人久久久| 欧美精品一区二区三区很污很色的 | 欧美一区二区在线视频| 欧美电影美腿模特1979在线看| 欧美中文日韩| 欧美天天在线| 99亚洲视频| 一区二区三区高清视频在线观看| 久久影院亚洲| 欧美不卡视频一区发布| 国产综合久久| 欧美在线观看日本一区| 欧美一区二区三区喷汁尤物| 欧美日韩在线第一页| 91久久精品一区二区别| 亚洲国产欧美久久| 久久五月天婷婷| 欧美多人爱爱视频网站| 一区二区在线观看视频在线观看| 午夜日韩福利| 久久精品天堂| 精品999久久久| 一区二区三区四区国产| 欧美中文在线字幕| 久久国产精品色婷婷| 国产女主播一区二区| 亚洲欧美国产另类| 久久久免费精品| 亚洲国产99| 欧美激情亚洲激情| 日韩天堂在线观看| 欧美一区二区国产| 国外成人在线| 你懂的一区二区| 日韩天堂在线观看| 欧美制服丝袜| 亚洲大片av| 欧美日韩亚洲一区二区三区在线观看 | 蜜臀久久99精品久久久画质超高清 | 久久疯狂做爰流白浆xx| 国产情人综合久久777777| 久久国产精品久久国产精品| 麻豆av福利av久久av| 亚洲人体一区| 国产精品成人观看视频国产奇米| 先锋资源久久| 欧美国产一区二区三区激情无套| 日韩午夜在线视频| 国产免费成人av| 男女视频一区二区| 亚洲一区在线视频| 欧美www视频| 亚洲香蕉网站| 伊人狠狠色丁香综合尤物| 欧美激情乱人伦| 午夜激情综合网| 亚洲激精日韩激精欧美精品| 亚洲欧美视频一区二区三区| 国内精品久久久久影院 日本资源| 卡一卡二国产精品| 亚洲综合成人在线| 亚洲第一色中文字幕| 午夜精品国产| 亚洲精品在线视频观看| 国产欧美一区二区视频| 欧美91视频| 欧美伊人久久久久久久久影院| 亚洲欧洲精品天堂一级 | 欧美高清视频在线播放| 亚洲性图久久| 亚洲精品一区二区三区樱花 | 在线一区视频| 在线免费高清一区二区三区| 国产精品久久久久久久久| 欧美成人精品一区二区| 久久黄色小说| 香蕉av777xxx色综合一区| 亚洲深夜影院| 一区二区三区蜜桃网| 亚洲人成免费|