Euler: Problem 101

Posted by YpsilonTAKAI On 2015年6月21日日曜日 0 コメント
久し振りにProject Eulerを解きました。
(※ なんと4年前に書いた下書きがそのままになっていた)

数列がはじめからN個与えられたときに得られる母関数では、N+1まで行くと間違った値(BOP)が出ます。 与える数列を増やしていったときに得られるすべてのBOPの和を求める問題です。

そういえば、こういうのって、補間法かなんか使えば出るんじゃなかったっけ…と思って解いたら解けました。
ウィキペディアで調べたら、ラグランジェ補間法ってやつだったので、まあ、そのまま、式にした感じです。

コメントにも書きましたけど、もうちょっとclojureらしく書いたほうがよかったのかもしれないんですが、そうすると、たぶん、元の式の形がなくなってしまいそう。


READ MORE

cider 0.9.0 がでましたね。 ->

Posted by YpsilonTAKAI On 0 コメント
twitterでciderの 0.9.0 が出たという情報が流れてきました。
 ->> もう、 0.9.1 になってます。 (6/27 追記)

マイナーバージョンが1上ったということで、いくつか新しい機能が追加されています。

メンテナのBastovさんがブログで、いくつかの重要な変更について書いています。

アップデート

ciderを入れ替えるお決まりの作業は以下の2つ。
  • emacs lisp のパッケージをアップデートする。
    僕は、melpa_stableのを入れてます。
  • $HOME/.lein/profiles.clj の cider/cider-nrepl のバージョンを変更する。
ですが、今回は、起動時に、
WARNING: CIDER requires nREPL 0.2.7 (or newer) to work properly
と怒られてしまいます。 これは、 leiningen 2.5.0 (2.5.1でも)の依存している、cider-nrepl が 0.2.6だからのようです。

  • $HOME/.lein/profiles.clj の :dependencies の tools.nrepl のバージョンを0.2.7以上にしてやる必要がある。
僕は、 0.2.10にしときました。 結果、僕の .lein/profiles.clj はこんなふうになってます。
{:user
 {:java-cmd "D:\\Java\\jdk1.7.0_79\\bin\\java.exe"
  :dependencies [[org.clojure/tools.nrepl "0.2.10"]]
  :plugins [[lein-localrepo "0.5.3"]
            [cider/cider-nrepl "0.9.0"]]
  :jvm-opts ["-Dline.separator=\"\n\""]}}

デバッガ

デバッガは最も要望の多い機能だったそうです。作者のMarabarbaさんのブログに簡単な説明があったのでちょっと使ってみた。 emacsのelispデバッガのedebugに触発されて作ったとのことですが、初版なので、ステップ実行と、値の注入(injection)ができるだけのようです。
動作については、Marabarbaさんのブログのgifアニメを見て、自分でやってみるのがいいでしょう。

僕も、使ってみるのに何か書こうと思って、久し振りにProject Eulerを解いてみた。
途中で、2,3回使ってみたけれど、なかなかよい。

依存の独立

ciderが依存しているライブラリが、プロジェクトから切り離されたとのこと。
これは僕にはよくわからなかった。なんのことでしょう?

コード補間の表示がリッチに

company-modeでのコード補間に、アノテーションが付きました。
たしかに付いてるんですが、windowsであるためか、全部左に寄ってしまって、ちと見にくい。


ほかにもまだまだ機能が追加されているようですが、いずれそのうち。




READ MORE