Hatena::Groupcadr

わだばLisperになる このページをアンテナに追加 RSSフィード

2004 | 12 |
2005 | 01 | 02 | 07 | 10 | 11 |
2006 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 11 |

2010-11-29

文字列の繰り返し

| 23:34 | 文字列の繰り返し - わだばLisperになる を含むブックマーク はてなブックマーク - 文字列の繰り返し - わだばLisperになる

RubyでもPythonでも、

"a" * 3
#=> 'aaa'

となるのを見て、

"-*" * 3.5

はどうなるのかなあ、と思って試したところ、自分が想像していた

#=> '-*-*-*-' 

みたいなことにはなりませんでした。

ということで折角なので記念に作ってみました。

(defun string* (string n)
  (collect 'string
           (subseries (apply #'series (coerce string 'list))
                      0
                      (truncate (* n (length string))))))
(string* "-*" 5.5)
;=> "-*-*-*-*-*-"

(string* "-***" (+ 3 1/4))
;=> "-***-***-***-"

2文字の場合にしか上手くはまらず、全然使いやすくないです…。

ゲスト



トラックバック - http://cadr.g.hatena.ne.jp/g000001/20101129