gpt4 book ai didi

scheme - 成员? Racket 中的功能

转载 作者:行者123 更新时间:2023-12-05 01:09:42 28 4
gpt4 key购买 nike

我正在关注 Brian Harvey 从 2011 年开始在 UC Berkeley site 上的 SICP 讲座。 .他正在使用 STk interpreter教这门课,我正在使用带有 DrRacket 的 Racket 来跟随。我试图定义他在类中使用的所有在 Racket 中未定义的函数(即 wordbutfirstbutlast )以进行额外练习。

我在尝试定义 member? 时遇到了问题.他能够在列表和字符串上使用它,做类似的事情

(member? 1 (list 1 2 3 4)) ;; works
(member? 'a '(a e i o u)) ;; works
(member? 7 17) ;; doesn't work
(member? #\e "Hello") ;; doesn't work

这是我对 member? 的定义上面做/不工作:
(define (member? u lst)
(not (equal? (member u lst) #f)))

所以这是一个列表,所以前两个是有意义的,他们正在工作。甚至可以创建一个函数来模仿 member?在STk?我在看文档,它看起来像字符串、列表、非负整数和一堆其他东西被定义为 sequence数据类型,但我找不到相关的序列函数。

最佳答案

您可以使用 sequence-ormap为了这:

(define (member? item seq)
(sequence-ormap (lambda (x)
(equal? item x))
seq))

去测试:
> (member? 7 17)
#t
> (member? #\e "Hello")
#t

关于scheme - 成员? Racket 中的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15479490/

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