>= |
|||
SKILL中只有 nil 是假(FALSE),其餘的任何值都是真(TRUE)。 ( condition1 exp11 exp12 ... ) ) ; foreach |
(1) A list containing the single element 1 當然還有其他眾多工具的介面函數,是以Skill需要輕易的函數查閱方式,這裏列出3種: car( car( cdr( ... ) ) ) case( shapeType ) 關鍵字(其實也是skill的函數)和左括弧之間不克不及有空格, |
||
) ;case
for( i 1 3 print( "hello" )) ;Prints hello three times.
(fibonacci (difference n 2))))
' 示意的list嚴酷按字面意思
=>*Error* strcat: argument #2 should be either a string
其中CIW(Command Interpreter Window),即啟動Icfb的第一個視窗,包括一些經常使用的menu,一個輸入行,和一個輸出區域,這裏是經常使用的debug skill程式的處所,固然cadence也供應了Tools->Skill Development,有愛好的話可以深切研究一下
對應參數的意義以下,printf需要注意輸出類型的對應
rectCount = lineCount = polygonCount = 0
println( nextLine )
nil && t
numeric
5 > 3
t
<
( condition2 exp21 exp22 ... )
若是有良多判定語句,用cond取代if…then…else組合,代碼對照清楚而且履行效力比力高,下面的兩種代碼是等效的。
L - list (Ignores width and precision fields.)
"hello"
x-coord of lower left corner
length計算list所包括元素的個數
Lista = '( 4 5 6 ) => ( 4 5 6 )
127.0.0.1 localhost
10.0.10.2 host1
lly = cadar( bBox)
"hello"
3). 從檔讀取資料:intfile界說輸入介面檔,gets一次從介面檔讀取一行字串,fscanf憑據指定的格式從介面檔讀取,close封閉打開的介面
3 || 5
3
5 || 3
5
Sample Logical Operators
t
輸出到檔/tmp/myFile2.
( "polygon" ++polygonCount )
Functions
2.1 Skill函數的查閱方式
)
layerName purpose rectCount labelCount lineCount miscCount
myPort = outfile( "/tmp/myFile1" )
case的判定可以是數位和字串,也能夠是它們構成的list,但不支援變數和運算式
abc != "ABc"
2). 邏輯操作符,如下表:
) cond( c - character 這裏可以看到雷同Lisp語言的透露表現法後面有很多右括弧,並且函數和參數輕易混合,所以一般保舉照舊用常用的類C語言代數表示法 ) car拜候list的第一個元素
|
llx = caar( bBox)
strcat( "Mary had a" 5 )
if condition1 then exp11 exp12 ...
member( 4 numbers ) => nil
%[-][width][.precision]conversion_code
<=
numbers = '( 1 2 3 ) => ( 1 2 3 )
else if condition2 then exp21 exp22 ...
)
when( inPort
upper right corner y-coord of lower left corner
printf 函數是花式化的輸出,下面的例子是一定花式輸出圖形層的統計 |
SKILL說話支援一套雷同C語言的語法,初學者有了一定的C語言根蒂根基,入門是很容易的翻譯Cadence的東西可以經由過程CIW,Bindkey,Form,Menu等多種體例挪用skill函數,送到skill語言的註釋器來執行各種操作。 t || nil |
ll = car( bBox) bBox = list( lowerLeft upperRight ) cadar |
輸出到檔 /tmp/myFile1. procedure( fibonacci(n) |
( "rect" ++rectCount ) 1)Skill中的特別字元(除字母數位和 _ 之外的其他字元)都有各自的寄義,見下表,若是要用到這些字元的話,用\ 可以去掉其非凡寄義翻譯 |
print 和 println 函數都可以用來顯示單個資料,println可以在顯示的資料後多加一個回車 n - numeric |
cadadr
c=b 固然Skill還提供的有max(a b …)的函數,舉這個例子是為了申明&& || 可以取代if then else之類的節制語句 用list命令和 ' 來透露表現一個bBox,list命令先計較變數或運算式,然後賦給list,' 示意的list和字面的一樣,不會計算變數或運算式的值 ury = cadadr( bBox) 3.0 == 3 |
t |
||||
d - decimal(integer) 3).用append號令合併兩個list greaterp |
)
A). 建立list有以下幾種根基的方法:
("Number:" 3)
general
car
把最可能出現的環境放在最前面,如果呈現的概率都一樣,把計算量最大的放在最後面,如許可以有效的提高代碼效力。
&&
else fibonacci(n-1) + fibonacci(n-2)
lessp
)
numbers = '( 1 2 3 ) => ( 1 2 3 )
nil
"hello""hello""hello"
member搜檢指定的元素是不是在指定的list中,它只搜檢頂層元素的元素,返回值是從搜到值入手下手到結尾的list
else if condition3 then exp31 exp32 ...
Operator
)
用 : 暗示一個座標的list,其結果和list命令一樣,用xCoord和yCoord號令可以訪問xy座標
car( cdr( ... ) )
inPort = infile( "~/.cshrc" )
(1 (2 3) 4) A list containing another list as its second element
string list
"hello"
Return Value
((or (equal n 1) (equal n 2)) 1)
numbers = '( 1 2 3 ) => ( 1 2 3 )
( t expN1 expN2 ... )
3 && 5
5
5 && 3
3
Number: 3
Using car and cdr with Bounding Boxes
lowerLeft = 300:400
Function
close( myPort )
Add an element to an existing list with the cons function.
1.代數默示法
( "line" ++lineCount )
s - string or symbol
println( list( "Number:" i) myPort )
1.最簡單的方式,看~/CDS.log檔或CIW的輸出區域,把Options-> LogFilter都選上。這裏一般可以查閱在圖形介面下運行的函數,如圖,天成翻譯公司們可以看到畫path線的函數和輸出結果等
2.在CIW裏輸入命令startFinder,或者在Terminal上輸入cdsFinder& . Finder合用於最少知道函數名的一部分,這裏可以查到函數的用法簡介翻譯例如上圖我們看到畫path的函數是leHiCreatePath(),但這是圖形方式的函數,對應skill方式的函數呢用法呢,可以在Finder中輸入CreatePath,如許天成翻譯公司們就能夠看到包含有CreatePath的所有函數,如圖,leCreatePath即是我們想找的函數,這裏可以看到簡單的用法介紹
3.上面我們查到的關於函數用法的介紹很簡單,若何知道其具體介紹呢翻譯當然如果
bBox = list( 300:400 500:450 ) ;含有 : 的bBox
if( a>b then
3. Skill語言簡介
result = cons( 1 result ) => ( 1 2 3 )
Cadence供應二次開辟的SKILL語言,它是一種基於通用人工聰明語言—Lisp的互動式高級編程說話(LISP即List Processing-表處置懲罰,是最早和最主要的符號處置懲罰編程說話之一,它於1958年由美國的J. McCarthy提出,LISP在人工智慧AI方面取得普遍運用)翻譯
a = 1 => 1
Specify all the elements of the list literally with the single quote ( ‘ ) operator.
Return Value
Number: 1
如: strcat ( "Hello" "," " everyone" "!" )
strcat "Hello" "," " everyone" "!" ;上面的括弧可以省略
Operator
caadr
numeric
car( car( ... ) )
Expression
string list
Skill函數提供兩種透露表現法,一種是代數默示法,而今大多數說話採取這類體例,即 func( arg1 arg2 ...),另一種是首碼示意法,類似於Lisp說話,即(func arg1 arg2 ...)。這裏舉個例子作為對照:
xValue = 300
aCoordinate = xValue:yValue => ( 300 400 )
general
abc == "ABc"
shapeTypeList = '( "rect" "polygon" "rect" "line" )
car( cdr( car( ... ) ) )
)
urx = caadr( bBox)
car( numbers ) => 1
t && nil
t
4 >=3
t
ur = cadr( bBox)
Sample Relational Operators
or a symbol (type template = "S") – 5
4. Skill語言中經常使用知識匯總列表
f - floating point
if…then…else的then是不能省略的(除只有一個if,沒有else的情形),
(defun fibonacci (n)
P - point list (Ignores width and precision fields.)
SKILL說話支援一套雷同C說話的語法,大大降低了初學者進修的難度,同時高水準的編程者可以選擇利用雷同Lisp說話的掃數功能。所以SKILL語言既可以用作最簡單的對象說話,也能夠作為開發任何運用的、強大的編程說話。SKILL可以與底層系統交互,也供應了會見Cadence各個東西的豐富介面。用戶可以經由過程Skill語言來會見,而且可以開辟自己的基於Cadence平臺的對象。
for( i 1 3 println( "hello" )) ;Prints hello three times.
=> ( "rect" "polygon" "rect" "line" )
conversion_code :
[width] = minimum number of character positions
if( (n == 1 || n == 2) then
2. 關於Skill函數
( condition3 exp31 exp32 ... )
Skill程式就像一個list表,雷同Lisp說話,程式的操作就像運算元據(list)一樣,可以生成,點竄,求值等
文章來自: http://seanhung365.pixnet.net/blog/post/27034702-cadence-skill%E8%AA%9E%E8%A8%80%E7%B0%A1%E4%BB%8B有關各國語文翻譯公證的問題歡迎諮詢天成翻譯公司02-77260931
留言列表