我想创建一个Scheme函数,如果它传递一个完全由相同元素组成的列表,则生成true.这样的清单将是'(1 1 1 1).它会像'(1 2 1 1)那样产生错误.
这是我到目前为止:
(define (list-equal? lst)
(define tmp (car lst))
(for-each (lambda (x)
(equal? x tmp))
lst)
)
Run Code Online (Sandbox Code Playgroud)
显然这是不正确的,我是新手.我想我无法表达在那里我应该返回步骤#t或#f.
提前致谢!
编辑:我摆弄了一点,找到了一个似乎工作得很好的解决方案,并且只需要很少的代码:
(define (list-equal? lst)
(andmap (lambda (x)
(equal? x (car lst)))
lst))
Run Code Online (Sandbox Code Playgroud)
再次感谢大家的帮助.