Comment detail

LL Golf Hole 2 - 文字列に含まれる単語の最初の文字を大文字にする (Nested Flatten)

文頭はすでに大文字になっていることを仮定しています。

;; 最初 #/\b\w/ としてハマった。

1
2
3
(use srfi-13)
(define (main args)
  (print (regexp-replace-all #/\W\w/ (cadr args) (compose string-upcase (cut <> 0)))))
stdin → stdout
;他の言語みたいに#/\b./でうまくいかないのは何故?
1
(use srfi-13)(print(regexp-replace-all #/(\w)(\w*)/(read-line)(rec,quote #`",(string-upcase'1),'2")))

> ;他の言語みたいに#/\b./でうまくいかないのは何故?

マニュアルにもあるのですが、 Gauche の regexp-replace-all は「文字列でマッチした部分の後ろの部分に ついて再帰的に自分自身を適用」するからです。 ^ の場合のときのことは覚えていたんですが \b でも問題になるんですねえ。

Index

Feed

Other

Link

Pathtraq

loading...