检查参数是否不是列表,如果不是列表则显示消息

check if argument is not a list , then display message if it isnt a list

我有一个名为 "evens" 的参数,它所做的只是获取列表中的偶数元素,并且它适用于列表。但是当传递一个像'a这样的原子时,它会崩溃并说“作为第一个参数传递给cdr的对象a不是正确的类型。”现在我不想要这个函数只处理原子列表。

我已经试过了,但它似乎是错误的,这有点像我想做的,但仍然需要一些指导。

    (IF  (NOT(LIST? lis)) "Enter valid list" ) => "Enter valid list" )

那么我如何检查是否传入了不是列表的内容。如果是,我如何显示某种文本消息(如果它不是列表)?

你很接近,试试这个:

(if (not (list? lis))
    (display "Enter a valid list")
    ; else do the normal stuff here
    )

您应该在调用您打算实现的实际功能之前进行上述验证。