0
我在Lisp中有一個我正在排序的列表,並且我想創建一個if語句來檢查列表中的當前對象是字符還是整數。區分Lisp中的字符和整數
有什麼樣:
(if (EQUAL currentObject char)
...)
或者
(if (EQUAL currentObject integer)
...)
,我可以使用?
非常感謝。
我在Lisp中有一個我正在排序的列表,並且我想創建一個if語句來檢查列表中的當前對象是字符還是整數。區分Lisp中的字符和整數
有什麼樣:
(if (EQUAL currentObject char)
...)
或者
(if (EQUAL currentObject integer)
...)
,我可以使用?
非常感謝。
有多種方法可以確定您手邊有哪種物體。
(typep EXPR 'character) ;; ==> True, if EXPR evaluates to a character
(characterp EXPR) ;; ==> ------------ " -----------------------
(typep EXPR 'integer) ;; ==> True, if EXPR evaluates to an integer
(integerp EXPR) ;; ==> ------------ " -----------------------
看一看的typep,typecase,characterp的定義,...
(loop
for element in list
do (typecase element
(integer #| element is an integer number ... |#)
(character #| element is a character object ... |#)
(t #| element is something not covered above |#)))
對於許多內建類型,也有可用的謂詞的功能,它可以被用來測試,特定的值是否是該類型的一個實例。通常,這些謂詞以其基本類型名稱命名,並附加「p」(「stringp」,「symbolp」,「numberp」,「consp」,...)
爲什麼不使用手冊來解決這些問題?打印這一個:http://clqr.boundp.org或者在線使用這一個:http://www.lispworks.com/documentation/HyperSpec/Front/Contents.htm –