如何通过define-struct模拟“列表功能”。
我想将结构定义为二叉树,并检查每个mycons的正确节点是make-mycons还是空的。
仅关注检查右节点需要为mycons或为空。
(我已经从github找到list?的源代码,但是超出了我的能力。)
if(!arr_ignore.includes(some_value))
your_function();
答案 0 :(得分:0)
list?
的简单版本:
(define (my-list? x)
(cond
[(eq? x '()) #t]
[(pair? x) (my-list? (cdr x))]
[else #f])
内置list?
更聪明。调用cons
时,它将检查最后一个参数是否为列表,如果为列表,则在cons单元的内部表示中翻转一位。这意味着内置list?
是O(1)而不是O(n),如上面的解决方案。