lisp 裡的條件判斷
if , cond , case
and , or 也可以作為判斷的一種方式
其中case 是的比對是基於eq , 所以業務上應該儘量避免基於字串的對比。
示例:
CL-USER> (if (oddp 5 )
'odd-number
'even-number)
ODD-NUMBER
CL-USER> (if (oddp 6 )
'odd-number
'even-number)
EVEN-NUMBER
CL-USER> (defun pudding-eater (person)
(case person
((henry) (setf *arch-enemy* 'henry)
'(curse you lisp alien - you ate my pudding))
((johnny) (setf *arch-enemy* 'johnny)
'(i hope you choked on my pudding johnny))
(otherwise '(why you eat my pudding stranger ?))))
STYLE-WARNING: redefining COMMON-LISP-USER::PUDDING-EATER in DEFUN
PUDDING-EATER
CL-USER> (pudding-eater 'johnny)
(I HOPE YOU CHOKED ON MY PUDDING JOHNNY)
CL-USER> (pudding-eater 'henry)
(CURSE YOU LISP ALIEN - YOU ATE MY PUDDING)
CL-USER> (defun pudding-eater (person)
(case person
((henry) (setf *arch-enemy* 'henry)
'(curse you lisp alien - you ate my pudding))
((johnny) (setf *arch-enemy* 'johnny)
'(i hope you choked on my pudding johnny))
(otherwise '(why you eat my pudding stranger ?))))
STYLE-WARNING: redefining COMMON-LISP-USER::PUDDING-EATER in DEFUN
PUDDING-EATER
CL-USER> (pudding-eater 'johnny)
(I HOPE YOU CHOKED ON MY PUDDING JOHNNY)
CL-USER> (pudding-eater 'henry)
(CURSE YOU LISP ALIEN - YOU ATE MY PUDDING)
CL-USER> (or (oddp 5 ) (oddp 7 ) (oddp 11) (oddp 3))
T
CL-USER> (or (oddp 5 ) (oddp 7 ) (oddp 11) (oddp 3))
T
CL-USER> (and (oddp 5 ) (oddp 7 ) (oddp 11) (oddp 3))
T
CL-USER>
CL-USER> *is-it-even*
NIL
CL-USER> (defparameter *is-it-even* nil)
*IS-IT-EVEN*
CL-USER> *is-it-even*
NIL
CL-USER> (or (oddp 4 ) (setf *is-it-even* t))
T
CL-USER> *is-it-even*
T
CL-USER> (and (oddp 3) (setf *is-it-even* nil))
NIL
CL-USER> *is-it-even*
NIL
CL-USER> (setf *is-it-even* t)
T
CL-USER> (and (oddp 4) (setf *is-it-even* nil))
NIL
CL-USER> *is-it-even*
T
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/133735/viewspace-751620/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 六、Vue條件判斷Vue
- Grovvy-條件判斷
- lisp 判斷時間Lisp
- Shell 條件判斷總結
- thinkphp-條件判斷-範圍判斷-range標籤PHP
- Go的條件判斷語句的使用Go
- Laravel 5 判斷條件是否存在Laravel
- mysql 插入時帶判斷條件MySql
- python3.0 -條件判斷Python
- python條件判斷與迴圈Python
- MySQL函式-條件判斷函式MySql函式
- thinkphp-條件判斷-if標籤2PHP
- 條件註釋判斷瀏覽器瀏覽器
- shell程式設計(五)條件判斷程式設計
- 易優CMS模板標籤if條件判斷多層次判斷
- UML圖中時序圖的新增判斷條件時序圖
- 資料庫啟動時的判斷條件資料庫
- 條件註釋判斷瀏覽器版本瀏覽器
- Python基礎:條件判斷 & 迴圈Python
- 小白學python系列-(6) 條件判斷Python
- 蝦扯蛋之條件判斷的極致優化優化
- 輸出判斷條件是或的解決方法
- shell指令碼中的運算子和條件判斷指令碼
- 在foreach的判斷條件裡執行方法會有效率問題嗎?
- PbootCMS判斷有無子選單各種條件判斷和標籤boot
- PbootCMS奇偶數判斷(隔行變色)各種條件判斷和標籤boot
- PbootCMS整理分頁判斷進階各種條件判斷和標籤boot
- 程式碼優化-多型代替IF條件判斷優化多型
- PHP基礎教程-19 If條件判斷語句PHP
- 判斷符合條件記錄是否存在SQL若干SQL
- MySQL條件判斷IF,CASE,IFNULL語句詳解MySqlNull
- lua版promise實現3 - 條件判斷例子Promise
- PbootCMS整理判斷是否連結賦值各種條件判斷和標籤boot賦值
- PbootCMS導航欄 logo 居中判斷各種條件判斷和標籤bootGo
- makefile--if條件判斷語句的語法與使用
- Java中的條件判斷語句-動力節點Java
- PbootCMS判斷第一個迴圈項,並新增 class條件判斷和標籤boot
- Python中if條件判斷語句怎麼用?Python