cdr接見list除第一個元素外的其他元素,注意返回依然是個list
用list命令和 ' 來表示一個bBox,list號令先較量爭論變數或運算式,然後賦給list,' 透露表現的list和字面的一樣,不會計算變數或者運算式的值
cadr
4. Skill說話中經常使用常識匯總列表
...
與/或邏輯操作只有在需要計算第二個運算式時,才計較第二個表運算式,好比&&操作,當第一個表達時為假時,就不會再較量爭論第二個運算式,|| 操作,當第一個表達時為假時,才會再計算第二個運算式。
Arguments
2). 邏輯操作符,以下表:
car( cdr( ... ) )
bBox = list( 300:400 500:450 ) ;含有 : 的bBox
經由過程car和cdr的組合可以訪問bBox每一個元素,而且有相關的簡化函數,如下表:
myPort = outfile( "/tmp/myFile1" )
!=
numeric
Skill函數提供兩種透露表現法,一種是代數暗示法,現在大大都語言採取這類體式格局,即 func( arg1 arg2 ...),另外一種是首碼暗示法,近似於Lisp說話,即(func arg1 arg2 ...)。這裏舉個例子作為比較:
Lista = '( 4 5 6 ) => ( 4 5 6 )
or a symbol (type template = "S") – 5
固然還有其他眾多東西的介面函數,是以Skill需要便利的函數查閱方式,這裏列出3種:
shapeTypeList = '( "rect" "polygon" "rect" "line" )
when( inPort
nil
println( nextLine )
println( list( "Number:" i) myPort )
car( numbers ) => 1
lower left corner
1)Skill中的非凡字元(除了字母數位以及 _ 以外的其他字元)都有各自的含義,見下表,如果要用到這些字元的話,用\ 可以去掉其非凡寄義。
( t expN1 expN2 ... )
car拜候list的第一個元素
else expN1expN2 ....
List Explanation
3). 從檔讀取資料:intfile界說輸入介面檔,gets一次從介面檔讀取一行字串,fscanf憑據指定的花式從介面檔讀取,close封閉打開的介面
2.首碼暗示法
t
for( i 1 3
Functions
)
Function
car( cdr( car( ... ) ) )
general
else if condition2 then exp21 exp22 ...
Listc = append( Lista Listb) => ( 4 5 6 1 2 3 )
Sample Logical Operators
運行cdsdoc&, 點擊Search打開Cadence help的搜索功能,對象會主動啟動一個http辦事,同時打開搜索網頁,啟動服務後,你也能夠在windows的IE裏輸入http://hostname:9000/search.htm,同樣可以打開搜索頁面,需要注意的是,在C:\WINNT\system32\drivers\etc\hosts檔中需要加入hostname對應的ip,如:
and
caar
( condition3 exp31 exp32 ... )
car
此中CIW(Command Interpreter Window),即啟動Icfb的第一個視窗,包含一些經常使用的menu,一個輸入行,和一個輸出區域,這裏是經常使用的debug skill程式的處所,固然cadence也供給了Tools->Skill Development,有愛好的話可以深切研究一下
<
)
xValue = 300
a. 軟體沒回應,比如在CIW中輸入段代碼,軟體沒有反映,什麼成績也沒有,通常爲因為( )或” “不成對釀成的,一般可以通過鍵入 ] 來解決,它表示彌補完舛錯稱的括弧(可以取代隨意率性多個右括弧),如果還沒有回應,鍵入 “] 這時候大部分環境下,系統會有回應
geqp
for( i 1 3 println( "hello" )) ;Prints hello three times.
Specify all the elements of the list literally with the single quote ( ‘ ) operator.
( ) An empty list (same as the special atom nil)
for( i 1 3 print( "hello" )) ;Prints hello three times.
>=
xCoord( aCoordinate ) => 300
關頭字(其實也是skill的函數)和左括弧之間不克不及有空格,
=> ( "rect" "polygon" "rect" "line" )
lessp
x-coord of upper right corner
( condition1 exp11 exp12 ... )
c=a
d - decimal(integer)
numeric
((or (equal n 1) (equal n 2)) 1)
caadr
=>*Error* strcat: argument #2 should be either a string
( "polygon" ++polygonCount )
cdr( numbers ) => ( 2 3 )
含有變數用list
3.5. Skill的控制結構
1). 關係操作符,如下表:
(t (plus (fibonacci (difference n 1)) 127.0.0.1 localhost 10.0.10.2 host1 "hello" t && nil '( a b 3 ) => ( a b 3 ) 3 && 5 |
5 |
||||
5 && 3 |
3 |
||||
3 <= 4 |
t |
||||
aCoordinate = xValue:yValue => ( 300 400 ) ("Number:" 3) b = 2 => 2 |
Example leqp 1.最簡單的方式,看~/CDS.log檔或CIW的輸出區域,把Options-> LogFilter都選上。這裏一般可以查閱在圖形介面下運行的函數,如圖,天成翻譯公司們可以看到畫path線的函數和輸出成效等
2.在CIW裏輸入命令startFinder,或者在Terminal上輸入cdsFinder& . Finder適用於至少知道函數名的一部分,這裏可以查到函數的用法簡介。例如上圖我們看到畫path的函數是leHiCreatePath(),但這是圖形方式的函數,對應skill方式的函數呢用法呢,可以在Finder中輸入CreatePath,這樣我們就能夠看到包括有CreatePath的所有函數,如圖,leCreatePath便是天成翻譯公司們想找的函數,這裏可以看到簡單的用法介紹
3.上面我們查到的關於函數用法的介紹很簡單,若何知道其具體介紹呢翻譯固然若是
yValue = 400 ("Number:" 2) ) ; foreach |
numeric ( condition2 exp21 exp22 ... ) ("Number:" 1) nth( 1 numbers ) => 2 打開~/.cshrc,輸出檔中的每個字串 |
|||
> |
|||||
n - numeric ) numbers = '( 1 2 3 ) => ( 1 2 3 ) myPort = outfile( "/tmp/myFile2" ) |
|||||
|
Skill語言有n多函數,加上眾多東西的介面函數,可以用成千上萬來形容,初學者可能會感應蒙頭轉向,無從下手。其實只要瞭解基本的變數,節制語句,輸入輸出以及一些經常使用東西的基本函數就能夠了,大大都函數都可以用到再查閱翻譯起頭進修skill時可以細心看看SKILL Language User Guide,其他的可以用到時再查閱,這裏列出幾個常常會用到的文檔:SKILL Language Reference -Skill語言相關的函數,Cadence User Interface SKILL Functions Reference-Cadence應用程式圖形介面介面函數,Design Framework II SKILL Functions Reference,SKILL Custom Layout Reference,SKILL Schematic Composer Reference分別是Cadence的Design Framework II,版圖,電路的介面函數。 car( ... ) fprintf( myPort "Number: %d " i ) ;注意printf函數不克不及輸出到port member查抄指定的元素是不是在指定的list中,它只搜檢頂層元素的元素,返回值是從搜到值開始到結尾的list ) ;case |
greaterp lly = cadar( bBox) )
yCoord( aCoordinate ) => 400 nth用索引訪問list的某個元素,注意索引從0開始 while( fscanf( inPort "%s" word ) ( t ++miscCount ) 如: strcat ( "Hello" "翻譯社" " everyone" "!" ) |
y-coord of lower left corner ) b. 資料類型不匹配,如: c - character c=b conversion_code : |
||
string list strcat( "Mary had a" 5 ) L - list (Ignores width and precision fields.) 也可以用邏輯操作符: c = (a>b)&&a || (a<b)&&b 返回的結果是最後一個計算的運算式,因此與/或邏輯操作可以代替繁瑣的if / when等節制語句,例如:C說話中的操作符, a>b ? c=a : c=b; 即c取a b中較大的一個Skill中沒有近似的操作符,可以用下面語句來完成此操作: nequal |
urx = caadr( bBox) |
P - point list (Ignores width and precision fields.) nil (cond |
numbers = '( 1 2 3 ) => ( 1 2 3 )
SKILL中只有 nil 是假(FALSE),其餘的任何值都是真(TRUE)。
f - floating point
upperRight = 500:450
nil && t
1).用 ' 和 list 界說一個list,注意二者的差別
)
a = 1 => 1
"hello"
Expression
numeric
"hello"
general
) ; cond
close( myPort )
Merge two lists with the append function.
Meaning
"hello""hello""hello"
cond(
Add an element to an existing list with the cons function.
<=
1
close( inPort )
llx = caar( bBox)
B - Bounding box list (Ignores width and precision.)
else
inPort = infile( "~/.cshrc" )
( "line" ++lineCount )
返回的成效都是 => "Hello, everyone!"
string list
else fibonacci(n-1) + fibonacci(n-2)
[width] = minimum number of character positions
保舉使用第一種方式,需要注意的是函數和第一個括弧之間沒有空格,不然會報錯
x-coord of lower left corner
t
numbers = '( 1 2 3 ) => ( 1 2 3 )
t
abc == "ABc"
cadar
cadadr
3.3. Skill List是Skill基於Lisp(List Processing)說話的表現,它是skill資料物件的一個有序糾合,skill資料乃至程式自己都可以看做是一個list,這是C語言中所沒有的概念。下面是skill list的簡單例子
B). 拜候list或list中某些元素的方法:
strcat "Hello" "," " everyone" "!" ;上面的括弧可以省略
3.0 == 3
t
(fibonacci (difference n 2))))
foreach( shapeType shapeTypeList
[-] = left justify
Arguments
Cadence help的搜索功能默許是用Netscape打開搜刮網頁,若是沒有裝Netscape,可能會打不開網頁。可以先打開firefox,mozila等流覽器,再啟動cadence doc搜刮http辦事,如許就能夠打開搜刮網頁了
&&
print 和 本文引用自: http://seanhung365.pixnet.net/blog/post/27034702-cadence-skill%E8%AA%9E%E8%A8%80%E7%B0%A1%E4%BB%8B有關各國語文翻譯公證的問題歡迎諮詢天成翻譯公司02-77260931