Grasping `all-the-apples-at-once' › 解法样本
Sample solutions
› Racket (Group II) [#281]
Grasping `all-the-apples-at-once' › 解法样本 Sample solutions › Racket (Group II) [#281]
(for/fold ([p #f]
[cnt 0]
[counts null]
#:result (cdr (reverse (cons `(,p ,cnt) counts))))
([c (in-string "aaaabbbcca")])
(if (equal? p c)
(values c (add1 cnt) counts)
(values c 1 (cons `(,p ,cnt) counts))))
该解法是纯函数式的⸺但与上面 GO 的解决方案非常相似。
The solution is pure functional -- yet closely resembling the Go solution above.