gpt4 book ai didi

list - 是否可以检查列表在方案中是否正确?

转载 作者:太空宇宙 更新时间:2023-11-03 19:01:39 24 4
gpt4 key购买 nike

我正在尝试创建检查列表是否正确的函数。在互联网上找不到任何解决方案。这可能吗?

例如我们有使用 list? 的代码:

(define (proper-list? list) 
(cond
((list? list) '(it's a proper list))
(else '(it's an improper list))))

(proper-list? '(a b c))
; -> (it's a proper list) - OK
(proper-list? '(a b . c))
; -> (it's an improper list) - OK
(proper-list? '(a . b))
; -> (it's an improper list)
; - NOT OK. it should return (it's a pair)

如何区分不正确的列表和对?

最佳答案

函数 list? 检查列表是否正确:

(list? '(1 2 3))   ; ==> #t
(list? '(1 2 . 3)) ; ==> #f

在您的函数中使用它来返回规范中的两个列表之一。

编辑

由于 (a . b) 不会被视为不正确列表的奇怪要求,我认为您应该在 cond 中添加一个额外的术语来区分两者在 cdr 中使用 pair? 列出链中一对和链中多对的不正确列表。 (pair? (cdr '(a . b)) ; ==> #f(pair? (cdr '(a b . c)) ; ==> #t

关于list - 是否可以检查列表在方案中是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46436659/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com