0
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

Scheme (R6RS) でひらけ!ポンキッキ

Scheme を使った記事「lambda を隠した書き方 (35) - 第25回シェル芸勉強会 Q2 -- ひらけ!ポンキッキ」を見てこれは面白そうな問題だと思いました。

R6RS ならばユニコードの範囲の文字を扱えることが保証されているので余計な処理にわずらわされずワンライナに出来そうだったのでやってみました。

$ echo '(import(rnrs))(let*((s"ひらけ!ポンキッキ")(d(string-append s s))(n(string-length s)))(do((i 0(+ i 1)))((= i n))(put-string(current-output-port)d i n)(newline)))' |scheme -q
ひらけ!ポンキッキ
らけ!ポンキッキひ
け!ポンキッキひら
!ポンキッキひらけ
ポンキッキひらけ!
ンキッキひらけ!ポ
キッキひらけ!ポン
ッキひらけ!ポンキ
キひらけ!ポンキッ

ここでは、 Chez Scheme を用いましたがコードは R6RS の範囲内で書いたので他の R6RS 処理系でも同じように動作するはずです。

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
0
Help us understand the problem. What are the problem?