0〜1000に含まれる0をカウントする(Gauche)
この一週間ほどは、Gauche-Fuse拡張ライブラリを書いています。
Cの構造体をforeign pointer objectにして、構造体のアクセサも用意する。
このstubをCLOSのクラスでラッピングすれば(proxyクラスという)、もうお客様にもお出しできます。
Cの構造体とSchemeのCLOSを行き来する俺ってかっこいい。
でも組み込みのクラス(
練習 - krystal: プログラミング超初心者(文系) - Rubyist
via 0〜1000に含まれる0をカウントする - ’(rubikitch wanna be (a . lisper))
via 0〜1000に含まれる0をカウントする - みずぴー日記
(use srfi-1) (use srfi-13) (use srfi-42) ;;(0..1000).map(&:to_s).join.count('0')と同じ (string-count (string-concatenate (map x->string (iota 1001))) #\0) => 193 ;;("0".."1000").inject(0){|s,x|s+x.count('0')}と同じ (fold (lambda (x s) (+ s (string-count (x->string x) #\0))) 0 (iota 1001)) => 193 ;;リスト内包表記 (sum-ec (: i 1001) (string-count (x->string i) #\0)) => 193
Unixコマンドで。(mzpさんのコメントをうけて修正)
$ seq 1000 | tr 0 '\n' | wc -l
1192
$ seq 0 1000 | tr -d '\n' | tr 0 '\n' | wc -l
193
とか
$ seq 0 1000 | tr -dC 0 | wc -c
193
とか。