Created
December 7, 2012 15:44
-
-
Save bouzuya/4234063 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(apply + (filter #(or (zero? (mod % 3)) (zero? (mod % 5))) (range 1000))) |
宗教上(自然数に0を...)の理由がなく、動作に影響もさほどないので、短くなる (range n) を採用しました。
自分で言うのもあれですが、この形がおそらく正攻法かなあと。
そうですね. 私も (range n) の方が簡潔で良いと思います.
要するに, 文句なし模範解答だと思います.
余談ですが,最近「仕様」だとか「設計」だとか,それらに対するベンダ・プログラマの態度・姿勢について考えています.(range n)
と (range 1 n)
は,それらについてのヒントになりました.ありがとうございます.
@tnoda よく分かりませんが、お役に立てたならうれしいです。また考えた結果について教えていただけるとうれしいです。
range
という名前の関数から想像できる動作として「開始と終了のふたつを指定して、その範囲の値を生成する」のは自然だとぼくは思います。ですので、開始・終了がはっきり見える (range from to)
が良い、なんてのはどうでしょう?
でも (range 0 1000)
と書いても 0 や 1000 を含むかどうかが分からないですね ([:-P
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
お疲れ様です.
問題 1 は clojure でも解いたことがあったはず, と思い, フォルダをあさったところ,
と書かれたファイルが見つかりました.
「自然数に 0 は含まれるか」以外は議論の余地なしということで. :-)
コンピュータ関係だと natural numbers というと 0 を含むことが多いですかね.