lingo的初步使用(集)
生活随笔
收集整理的這篇文章主要介紹了
lingo的初步使用(集)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
lingo里面!開始;結束之間的部分是注釋。
我認為集的概念和面向對象里面的類比較像。一個集可以有一些成員,類似于面向對象里面的對象,集成員有相應的屬性,類似面向對象里面的屬性。
Lingo有兩種類型的集:原始集和派生集。類似于面向對象里面的類之間的子類和父類的關系。
要想使用集,就得先對它進行聲明:
setname[/member_list/][:attribute_list];
!上面這是原始集的聲明方式,其中member_list(成員列表)和attribute_list(屬性列表)都是可以省略的。
下面來舉個例子:
sets:
students/John Jill,Rose Mike/:sex,age;
endsets;
!其中students是類名,John Jill Rose Mike是幾個成員,sex,age是屬性。
這里的對成員的羅列方法是顯式的,啥叫顯式,就是你一個個手動輸進去,中間每個成員名以空格或者逗號隔開。
!顯式羅列;
sets:
students/John Jill,Rose Mike/:sex,age;
endsets
!隱式羅列
sets:
setname/member1..member10/:name,sex,job;
endsets;
!數據部分,如果前面已經把變量名給寫了出來,那么后面就沒有必要寫變量名,只要把相應的屬性給賦值即可;
data:
sex,age= 1 16
0 14
0 17
1 13;
enddata
我覺得對成員的顯式羅列和隱式羅列相當于是給某個類下取了某幾個對象,然后在數據部分對這幾個對象進行數據的初始化。
!前面的部分都是原始集,接下來我們來定義一個派生集,有種繼承的感覺在里面
1.集的名字;
2.父集的名字;
3.可選,集成員
4.可選,集成員的屬性
;
sets:
product/A B/;
machine/M N/;
week/1..2/;
allowed(product,machine,week):x;
endsets
稠密集:派生集成員由父類所有的組合構成,這樣的派生集稱為稠密集
稀疏集,如果限制派生集成員,使它成為所有集合的一個子集,這樣的派生集稱為稀疏集。
派生集成員列表產生方式:
1.顯示羅列。
2.設置成員資格過濾器。
方式1:
allowed(product,machine,week)/A M 1,A N 2,B N 1/;!
方式2:
sets:
!學生集:性別屬性sex,1表示男性,0女性
students/John,Jill,Rose,Mike/:sex,age;
!男學生和女學生聯系集:友好程度屬性friend,[0,1]之間的數.
linkmf(students,students)|sex(&1) #eq# 1 #and# sex(&2) #eq# 0:friend;
!男學生和女學生的友好程度大于 0.5 的集?
linkmf2(linkmf) | friend(&1,&2) #ge# 0.5:x;
endsets?
data:
sex,age=1 16
0 14
0 17
0 13
friend=0.3 0.5 0.6;
enddata
用豎線(|)來標記一個成員資格過濾器的開始。#eq#是邏輯運算符,用來判斷是否相等。&1表示第一個父集中的的所有成員,&2表示第二個父集中的所有成員。
所以linkmf是一個派生集,繼承了兩個都是students的原始集的派生集,其中只有第一個原始集集和第二個原始集中性別相等的成員才會是該派生集的成員。并且該
派生集還多了一個屬性描述上面兩個原始集之間的聯系。linkmf2是linkmf的派生集,只有在linkmf中關系大于0.5的才會是linkmf2的成員。
總結
以上是生活随笔為你收集整理的lingo的初步使用(集)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mouseup 左键_javascrip
- 下一篇: 北大计算机博进高校,他是北大第一位博士,