❈♦♥✈❡♥t✐♦♥s ❙❤❛♥❦❛r ▼❛r❝❤ ✶✶✱ ✷✵✶✹
❙❡ts ❛♥❞ ❇❛❣s ❙❡ts set(2,5,5,4) ✿ ❡♥✉♠❡r❛t❡❞ s❡t ✴✴ {2,5,4} ✴✴ domain ✿ s❡t✱ ❜❛❣✱ s❡q set( expr : param in domain ; pred ) ❋♦r s❡t x x.size ✿ ★ ♦❢ ❡♥tr✐❡s ✐♥ x ✴✴ x ← x ∪ {m} x.add(m) ✴✴ x ← x \ {m} x.remove(m) ❙❡t t②♣❡s Set x ✴✴ s❡t ♦❢ ❡♥tr✐❡s ♦❢ U Set<U> x ❇❛❣s ✴✴ ♠✉❧t✐s❡ts ❛❧❧ t❤❡ ❛❜♦✈❡ ❝♦♥str✉❝ts✱ ✇✐t❤ ✏s❡t✑ → ✏❜❛❣✑ ❡✳❣✳✱ bag( expr : param in domain ; pred )
❙❡q✉❡♥❝❡s ❙❡q✉❡♥❝❡s [2,3,4,2,1] ✿ ❡♥✉♠❡r❛t❡❞ s❡q✉❡♥❝❡ ✴✴ ❬❤❡❛❞✱ ✳✳✳✱ ❧❛st❪ ✴✴ domain ✿ s❡q✉❡♥❝❡ [ expr : param in domain ; pred ] ❋♦r s❡q✉❡♥❝❡ x x[j] ✿ j t❤ ❡♥tr② ✴✴ x[0] ✐s ❤❡❛❞ x.keys ✿ [0 .. x.size − 1] ✴✴ t♦ t❛✐❧ x.append(m) ✴✴ x[k] x.remove(k) ◦ ✿ ❝♦♥❝❛t❡♥❛t✐♦♥ ✴✴ [1,2] ◦ [a,b] ❂ [1,2,a,b] ❙❡q✉❡♥❝❡ t②♣❡s ❚✉♣❧❡s✿ ✜①❡❞✲❧❡♥❣t❤ s❡qs Tuple < · , · > Seq ✴✴ ❡♥tr✐❡s ✐♥ U ✴✴ U × V Seq <U> Tuple <U,V>
▼❛♣s ▼❛♣ s❡t ♦❢ ❬❦❡②✱ ✈❛❧✉❡❪ t✉♣❧❡s✱ ✇✐t❤ ❞✐st✐♥❝t ❦❡②s ✴✴ ♠❛♣ ✇✐t❤ ✷ ❡♥tr✐❡s map([2,100], [3,200]) map( ✷ tuple : param in domain ; pred ) ❋♦r ♠❛♣ x ✴✴ s❡q✉❡♥❝❡ ♦❢ ❦❡②s x.keys ✴✴ ✈❛❧✉❡ ✐♥ [j, · ] x[j] ✴✴ ❞❡❧❡t❡ [j, · ] ✭✐❢ ❛♥②✮ remove(j) x[j] ← e ✴✴ remove(j) ✱ ❛❞❞ [j,e] ▼❛♣ t②♣❡s✿ Map Map <U,V>
▼✐s❝❡❧❧❛♥❡♦✉s ❙❡t✴s❡q✉❡♥❝❡ S ❝❛♥ s❡r✈❡ ❛s ❛ ✏t②♣❡✑ ❢♦r ❞❡✜♥✐♥❣ ✈❛rs S x ✿ ✈❛r x ❝❛♥ r❛♥❣❡ ♦✈❡r ❝✉rr❡♥t ✈❛❧✉❡s ♦❢ S ❚②♣❡ T ❝❛♥ s❡r✈❡ ❛s ❛ ✏s❡t✑ ❢♦r ♠❡♠❜❡rs❤✐♣ ♣r❡❞✐❝❛t❡s x in T T(x) ❉♦♥✬t✲❝❛r❡ ✈❛❧✉❡ ✏ · ✑ ✐♥ ♣r❡❞✐❝❛t❡ P (thread in fn(.) ✿ forsome(x: thread in fn(x)) (thread in v[.].fn(.) ✿ forsome(x,y: thread in v[y].fn(x)) ✏ forsome ✑ ❛♣♣❧✐❡s t♦ s♠❛❧❧❡st ♣r❡❞✐❝❛t❡ ✐♥ P ❡♥❝❧♦s✐♥❣ · ongoing(S) ✿ s❤♦rt ❢♦r ✏ (thread in S) ✑
Recommend
More recommend