Lisp - 迴圈構造



迴圈 構造允許你實現類似於其他語言中最常見的 for 迴圈的迭代。

它允許你

  • 設定迭代變數

  • 指定將有條件地終止迭代的表示式

  • 指定在每次迭代中執行某些工作的表示式

  • 指定表示式,以及在退出迴圈之前執行某些工作的表示式

for 迴圈構造遵循以下語法:

(loop for loop-variable in <a list>
   do (action)
)

(loop for loop-variable from value1 to value2
   do (action)
)

示例 - 字串迴圈

建立一個名為 main.lisp 的新原始碼檔案,並在其中鍵入以下程式碼:

main.lisp

; loop on strings and print each value
(loop for x in '(tom dick harry)
   ; print x
   do (format t " ~s" x)
)

輸出

當你點選“執行”按鈕或鍵入 Ctrl+E 時,LISP 會立即執行它,返回的結果是:

TOM DICK HARRY

示例 - 數字迴圈

更新名為 main.lisp 的原始碼檔案,並在其中鍵入以下程式碼:

main.lisp

; loop on each number and print
(loop for a from 10 to 20
   ; print a
   do (print a)
)

輸出

當你點選“執行”按鈕或鍵入 Ctrl+E 時,LISP 會立即執行它,返回的結果是:

10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 

示例 - 數字條件迴圈

更新名為 main.lisp 的原始碼檔案,並在其中鍵入以下程式碼:

main.lisp

; loop numbers from 1 to 20
(loop for x from 1 to 20
   ; if number is even
   if(evenp x)
   ; print x
   do (print x)
)

輸出

當你點選“執行”按鈕或鍵入 Ctrl+E 時,LISP 會立即執行它,返回的結果是:

2 
4 
6 
8 
10 
12 
14 
16 
18 
20
lisp_loops.htm
廣告
© . All rights reserved.