Island Life

< 100 Rejections | 有料オーディションは違法 (カリフォルニアでは) >

2017/02/02

Gaucheでひらけ!ポンキッキ (文字列の回転)

流行りに乗る

円環状につなげてずらして切り出すには、循環リストを作るという手もある。

(use srfi-1)
(define (rot s)
  (let1 l (string-length s)
    ($ for-each ($ print $ list->string $ (cut take <> l) $ drop
                   ($ circular-list $* string->list s) $)
       $ iota l)))

($ f $ g $ h $) はパイプを逆さにつなげたように読むと良い。データが右から入って左に流れてゆく。

gosh> (rot "ひらけ!ポンキッキ")
ひらけ!ポンキッキ
らけ!ポンキッキひ
け!ポンキッキひら
!ポンキッキひらけ
ポンキッキひらけ!
ンキッキひらけ!ポ
キッキひらけ!ポン
ッキひらけ!ポンキ
キひらけ!ポンキッ
#<undef>

Tags: Programming, Gauche, Scheme

Post a comment

Name: