Skip to content

Instantly share code, notes, and snippets.

@tnoda
Created December 11, 2012 14:50
Show Gist options
  • Save tnoda/4259078 to your computer and use it in GitHub Desktop.
Save tnoda/4259078 to your computer and use it in GitHub Desktop.
Project Euler Problem 5 #mitori_clj
(ns tnoda.projecteuler.problem-5
(:import org.apache.commons.math.util.MathUtils) ; [org.apache.commons/commons-math "2.2"]
(:use clojure.test))
(defn- solver*
[n]
(reduce (fn [^long x ^long y] (MathUtils/lcm x y)) (range 1 (inc n))))
(def solver (partial solver* 20))
(is (= 2520 (solver* 10)))
@emanon001
Copy link

型ヒントは普段使わないですが、よくよく考えると、リフレクションを使用して型を判別するのって結構コストがかかりますね。
Project Euler だと型ヒントの恩恵を受ける機会が多そうなので、次の問題あたりで試してみます。


@kohyama @ypsilon-takai
おお、clojure.contrib は 1.3 からそれぞれ独立したライブラリとしてメンテナンスされるようになっていたのですね。全く知らなかったです。
リンク先の情報、とても助かります。

@bouzuya
Copy link

bouzuya commented Jan 13, 2013

Apache Commons のような既存の Java ライブラリを使ってコーディングの量を減らせるのも,Clojure の長所の一つだと考えています.Maven リポジトリと Leiningen が無ければ Clojure 使っていなかったかもしれないくらい,便利です.

Maven リポジトリ + Leininge で、既存ライブラリを手軽に使えているというのは、ぼくも強く感じています。また、Clojars を使えば、自作ライブラリを公開するのも簡単です。

*warn-on-reflection* ぼくも試してみます。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment