nth( 1 numbers ) => 2
yCoord( aCoordinate ) => 400
SKILL中只有 nil 是假(FALSE),其餘的任何值都是真(TRUE)。
(t (plus (fibonacci (difference n 1))
for( i 1 3 print( "hello" )) ;Prints hello three times.
conversion_code :
Cadence skill說話簡介
for和foreach是迴圈控制語句,for和C說話中的根基一樣,foreach常常用於對list的每一個元素作迴圈操作,每一個迴圈順次把各個元素的值賦給一個變數,以下面的例子,你會注意到foreach的返回值是迴圈的list
(fibonacci (difference n 2))))
&&
abc == "ABc"
2).用cons號令添加一個元素到一個list的頭部
Arguments
3 || 5
3
5 || 3
5
strcat( "Hello" "," " everyone" "!" ) ;常見的類C格局
ury = cadadr( bBox)
else if condition2 then exp21 exp22 ...
1.代數默示法
( "rect" ++rectCount )
)
car( car( cdr( ... ) ) )
=> *Error* eval: not a function - "Hello"
nil
abc != "ABc"
length( numbers ) => 3
' 透露表現的list嚴酷按字面意思
cadr
對應參數的意義以下,printf需要注意輸出類型的對應
L - list (Ignores width and precision fields.)
SKILL說話支援一套近似C說話的語法,初學者有了必然的C說話根本,入門是很輕易的。Cadence的對象可以經由過程CIW,Bindkey,Form,Menu等多種方式挪用skill函數,送到skill說話的註釋器來履行各種操作。
固然Skill還供給的有max(a b …)的函數,舉這個例子是為了說明&& || 可以代替if then else之類的節制語句
B). 會見list或者list中某些元素的方式:
bBox = list( lowerLeft upperRight )
ll = car( bBox)
Number: 1
( condition3 exp31 exp32 ... )
( "line" ++lineCount )
=> ( "rect" "polygon" "rect" "line" )
ur = cadr( bBox)
也能夠用邏輯操作符: c = (a>b)&&a || (a<b)&&b
(1) A list containing the single element 1
用 : 表示一個座標的list,其後果和list號令一樣,用xCoord和yCoord饬令可以接見xy座標
cdr接見list除第一個元素外的其他元素,注意返回仍然是個list
3.0 == 3
t
)
Listc = append( Lista Listb) => ( 4 5 6 1 2 3 ) numeric for( i 1 3 println( "hello" )) ;Prints hello three times. 用list命令和 ' 來透露表現一個bBox,list命令先較量爭論變數或者運算式,然後賦給list,' 示意的list和字面的一樣,不管帳算變數或運算式的值 Example x-coord of lower left corner '( a b 3 ) => ( a b 3 ) |
||
上面臨skill說話作了一個大要的介紹,固然進修skill需要瞭解的良多,這裏就不再逐一作具體的介紹了,只是對一些需要注意的處所做一下總結,具體的還是要進修User Guide Skill函數供給兩種暗示法,一種是代數暗示法,目前大多數說話採取這類方式,即 func( arg1 arg2 ...),另一種是首碼透露表現法,類似於Lisp說話,即(func arg1 arg2 ...)。這裏舉個例子作為對照: 2.1 Skill函數的查閱方式 ( t expN1 expN2 ... )
|
||
( condition2 exp21 exp22 ... ) x-coord of upper right corner if( (n == 1 || n == 2) then 輸出到檔/tmp/myFile2. nil close( inPort ) Example numbers = '( 1 2 3 ) => ( 1 2 3 ) car( car( ... ) ) numeric 要害字(其實也是skill的函數)和左括弧之間不能有空格, ) yValue = 400 aCoordinate = xValue:yValue => ( 300 400 )
|
car ) ;case |
|
car( cdr( car( cdr( ...]
返回的結果是最後一個計較的運算式,因此與/或邏輯操作可以取代繁瑣的if / when等控制語句,例如:C說話中的操作符, a>b ? c=a : c=b; 即c取a b中較大的一個Skill中沒有近似的操作符,可以用下面語句來完成此操作: printf 函數是花樣化的輸出,下面的例子是一定格局輸出圖形層的統計
for( i 1 3 |
||
("Number:" 2) y-coord of lower left corner or a symbol (type template = "S") – 5 打開~/.cshrc,輸出檔的每一行 == |
cdr( numbers ) => ( 2 3 ) 127.0.0.1 localhost 10.0.10.2 host1 s - string or symbol |
3 && 5
5
5 && 3
3
( "polygon" ++polygonCount )
Lista = '( 4 5 6 ) => ( 4 5 6 )
strcat "Hello" "翻譯社" " everyone" "!" ;上面的括弧可以省略
)
println( word )
close( myPort )
...
1).用 ' 和 list 定義一個list,注意二者的差別
5 > 3 |
t |
||||||
1. Skill說話和Lisp說話的關係 bBox = '(( 300 400 ) ( 500 450 )) Operator ( condition1 exp11 exp12 ... ) numbers = '( 1 2 3 ) => ( 1 2 3 ) close( myPort ) ) ) ; foreach |
else expN1expN2 .... ) |
xValue = 300 nil close( inPort ) rectCount = lineCount = polygonCount = 0 lower left corner for( i 1 3 else fibonacci(n-1) + fibonacci(n-2) member( 4 numbers ) => nil 把最可能泛起的情況放在最前面,假如出現的概率都一樣,把較量爭論量最大的放在最後面,這樣可以有用的提高代碼效力。 |
與/或邏輯操作只有在需要計算第二個運算式時,才計較第二個表運算式,好比&&操作,當第一個表達時為假時,就不會再較量爭論第二個運算式,|| 操作,當第一個表達時為假時,才會再計較第二個運算式。 Return Value |
Specify all the elements as evaluated arguments to the list function. 3.4. Skill的輸入輸出 1). 輸出顯示資料: numeric numbers = '( 1 2 3 ) => ( 1 2 3 ) Cadence help的搜刮功能默許是用Netscape打開搜刮網頁,若是沒有裝Netscape,可能會打不開網頁翻譯可以先打開firefox,mozila等流覽器,再啟動cadence doc搜索http辦事,如許就能夠打開搜刮網頁了 || |
case的判定可所以數位和字串,也能夠是它們組成的list,但不支援變數和運算式 (defun fibonacci (n) myPort = outfile( "/tmp/myFile2" ) |
Function c=b
cond( 3 <= 4 |
t |
println( nextLine ) 3 < 5 |
t |
||||||
3 < 2 |
myPort = outfile( "/tmp/myFile1" ) 3. Skill語言簡介
3).用append命令合併兩個list |
upperRight = 500:450 greaterp foreach( shapeType shapeTypeList Skill程式就像一個list表,雷同Lisp說話,程式的操作就像運算元據(list)一樣,可以生成,修改,求值等 %[-][width][.precision]conversion_code Return Value println( list( "Number:" i) myPort ) t result = '( 2 3 ) => ( 2 3 ) |
upper right corner
在疆土設計中,關於座標的list是最長見的,它是一組2維的list,常見的表示方式有:
a = 1 => 1
Arguments
這是挪用skill函數的一個常見問題,其他的問題還有:
如: strcat ( "Hello" "," " everyone" "!" )
"hello"
c - character
( ) An empty list (same as the special atom nil)
when( inPort
y-coord of upper right corner
1)Skill中的特殊字元(除字母數位和 _ 以外的其他字元)都有各自的寄義,見下表,假如要用到這些字元的話,用\ 可以去掉其特殊寄義翻譯
leqp
urx = caadr( bBox)
and
while( gets( nextLine inPort )
P - point list (Ignores width and precision fields.)
=>*Error* strcat: argument #2 should be either a string
Number: 2
Operator
Cadence供給二次開發的SKILL說話,它是一種基於通用人工聰明語言—Lisp的互動式高級編程說話(LISP即List Processing-表處理,是最早和最重要的符號處置懲罰編程說話之一,它於1958年由美國的J. McCarthy提出,LISP在人工智慧AI方面取得廣泛運用)翻譯
else
>
member搜檢指定的元素是否在指定的list中,它只查抄頂層元素的元素,返回值是從搜到值起頭到結尾的list
inPort = infile( "~/.cshrc" )
<=
3). 控制語句:if(…then…else….),when,unless,case,cond,迴圈語句for,forecah等,節制語句和C語言雷同,都是先判定某個變數或運算式是不是為真,然後執行下面的操作,需要注意的是:
print 和 println 函數都可以用來顯示單個資料,println可以在顯示的資料後多加一個回車
文章出自: http://seanhung365.pixnet.net/blog/post/27034702-cadence-skill%E8%AA%9E%E8%A8%80%E7%B0%A1%E4%BB%8B有關各國語文翻譯公證的問題歡迎諮詢天成翻譯公司02-77260931
留言列表