Rotating a list to the right in scheme
真面目に実装するのはだるいなぁと思ったのでこんな風に書いてみた。
(import (rnrs) (srfi :1)) (define (rotate-right l) (if (null? l) l (cons (car (last-pair l)) (drop-right l 1)))) (rotate-right '(1 2 3 4 5)) ;; -> (5 1 2 3 4)一応O(N)で動くと言えば動く。SRFI-1に
split-at-right
みたいなのがあればリストを舐めるのが一回で済みそうではある。今週はネタも時間もなかったのでこんなので…(そのうち
split-at-right
を実装してもう少しマシなのを書くかもしれない。)
No comments:
Post a Comment