如何计算球拍中的弦出现次数
How to calculate string occurence in racket
编写一个 Racket 函数 red-vs-blue,它消耗一个列表漫游,并根据生成一个字符串
遵循以下规则:
示例:
(red-vs-blue (cons "red" (cons "blue" (cons 5/7 (cons "blue" empty)))))
⇒ "blue"
• (red-vs-blue empty) ⇒ "tie"
• (red-vs-blue (cons 3 (cons 1 (cons 4 (cons 1 (cons 5 (cons 9 empty))))))) ⇒ "tie"
• (red-vs-blue (cons "red" (cons "green" empty))) ⇒ "red"
如何创建主函数?
您只需为每种颜色调用该函数,存储结果并将它们与条件进行比较:
(define (red-vs-blue lst)
(let ((reds (calculate lst "red"))
(blues (calculate lst "blue")))
(cond ((> reds blues) "red")
((< reds blues) "blue")
(else "tie"))))
相同的答案,但不使用 let
- 这比只计算一次所需值的效率要低:
(define (red-vs-blue lst)
(cond ((> (calculate lst "red") (calculate lst "blue")) "red")
((< (calculate lst "red") (calculate lst "blue")) "blue")
(else "tie")))
编写一个 Racket 函数 red-vs-blue,它消耗一个列表漫游,并根据生成一个字符串 遵循以下规则:
示例:
(red-vs-blue (cons "red" (cons "blue" (cons 5/7 (cons "blue" empty)))))
⇒ "blue"
• (red-vs-blue empty) ⇒ "tie"
• (red-vs-blue (cons 3 (cons 1 (cons 4 (cons 1 (cons 5 (cons 9 empty))))))) ⇒ "tie"
• (red-vs-blue (cons "red" (cons "green" empty))) ⇒ "red"
如何创建主函数?
您只需为每种颜色调用该函数,存储结果并将它们与条件进行比较:
(define (red-vs-blue lst)
(let ((reds (calculate lst "red"))
(blues (calculate lst "blue")))
(cond ((> reds blues) "red")
((< reds blues) "blue")
(else "tie"))))
相同的答案,但不使用 let
- 这比只计算一次所需值的效率要低:
(define (red-vs-blue lst)
(cond ((> (calculate lst "red") (calculate lst "blue")) "red")
((< (calculate lst "red") (calculate lst "blue")) "blue")
(else "tie")))