谓词对所有人都是真的?
Predicate true-for-all?
我一直在努力理解 "simply scheme" 中的这个练习 8.10,但在 Dr Racket 中就是无法理解。
是这个:写一个 true for all 的谓词?它有两个参数,一个谓词过程和一个句子。它应该 return #t 如果谓词参数 return 对句子中的每个单词都是真的。
(true-for-all? even? ’(2 4 6 8))
T
(true-for-all? even? ’(2 6 3 4))
F
我尝试了解决方案:
(define (true for all? pred sent)
(= (count sent) (count (count (keep pred sent))))
但 Dr Racket 给出了计数错误:元数不匹配。
是否有人能够重写它或至少给出一些提示。非常感谢:)
此致,
尤尼斯
Racket 支持多种语言。因此所有程序都以 #lang
行开始,告诉 Racket 使用哪种语言。 Simply Scheme中使用的Scheme方言需要这一行:
#lang planet dyoo/simply-scheme:2
以下程序:
#lang planet dyoo/simply-scheme:2
(define (true-for-all? pred sent)
(= (count sent) (count (keep pred sent))))
(true-for-all? even? '(2 4 6 8))
(true-for-all? even? '(2 6 3 4))
returns
#t
#f
符合预期。
注意:在DrRacket左下角选择"Determine language from source"。
Simply Scheme 语言的文档在这里:http://planet.racket-lang.org/package-source/dyoo/simply-scheme.plt/2/2/planet-docs/manual/index.html
在纯 Racket 中有一个解决方案(仅用于上下文):
#lang racket
(define (true-for-all? pred list)
(cond
[(empty? list) #t]
[(pred (first list)) (true-for-all? pred (rest list))]
[else #f]))
我一直在努力理解 "simply scheme" 中的这个练习 8.10,但在 Dr Racket 中就是无法理解。
是这个:写一个 true for all 的谓词?它有两个参数,一个谓词过程和一个句子。它应该 return #t 如果谓词参数 return 对句子中的每个单词都是真的。
(true-for-all? even? ’(2 4 6 8))
T
(true-for-all? even? ’(2 6 3 4))
F
我尝试了解决方案:
(define (true for all? pred sent) (= (count sent) (count (count (keep pred sent))))
但 Dr Racket 给出了计数错误:元数不匹配。 是否有人能够重写它或至少给出一些提示。非常感谢:)
此致, 尤尼斯
Racket 支持多种语言。因此所有程序都以 #lang
行开始,告诉 Racket 使用哪种语言。 Simply Scheme中使用的Scheme方言需要这一行:
#lang planet dyoo/simply-scheme:2
以下程序:
#lang planet dyoo/simply-scheme:2
(define (true-for-all? pred sent)
(= (count sent) (count (keep pred sent))))
(true-for-all? even? '(2 4 6 8))
(true-for-all? even? '(2 6 3 4))
returns
#t
#f
符合预期。
注意:在DrRacket左下角选择"Determine language from source"。
Simply Scheme 语言的文档在这里:http://planet.racket-lang.org/package-source/dyoo/simply-scheme.plt/2/2/planet-docs/manual/index.html
在纯 Racket 中有一个解决方案(仅用于上下文):
#lang racket
(define (true-for-all? pred list)
(cond
[(empty? list) #t]
[(pred (first list)) (true-for-all? pred (rest list))]
[else #f]))