2012-01-01から1年間の記事一覧
元ネタ -> r - Quick question: cast function argument as a character string? - Stack Overflowdeparse と substitute を使うと実引数を文字列化できる。 > f <- function(x) deparse(substitute(x)) > f(1) [1] "1" > f(x) [1] "x" > f(list(x=3)) [1] "…
2014/03/26追記 magrittrパッケージに以下で書いてるようなパイプ演算子があります。 下でやってることよりもっとちゃんとつくってあるので、 unaryとか必要ないです。 > 1:3 %>% sort(dec=T) [1] 3 2 1 追記ここまで Rは演算子の定義ができるので、F#のパイ…
2012/09/20 追記 R Tips 第2版を購入して読んでいたら、expand.gridなる関数があるじゃないですか・・・。 The R Tips―データ解析環境Rの基本技・グラフィックス活用集ということで、下でやっていることはexpand.grid関数でできます。 ああ、もっと検索力が…
vimのプラグイン管理用プラグイン(ややこしい)であるVundleをWindows XPで使おうとしたらハマったので、解決した手順をメモっておく。 問題 VundleでいざBundleInstallしようとしたら、error: inflate: data stream error (incorrect header check) とか言わ…
const参照の引数でうっかりしてハマったこと。以下のような、レンジの全ての要素から、一括してある値を引くようなヘルパ関数を作っていた。 (実際は足し算や掛け算などもサポートするように汎用的に書いていたが) template<class T, class Range> void Sub(Range &r, const T& v</class>…
恥ずかしながら知らなかった。 ヌルポインタの参照外しを行ったらすぐにセグメンテーションフォールト等で落ちるもんだと思い込んでたけど、データメンバに触らなければ実行できてしまうようだ。 規格上認められてるのか、それとも未定義動作なのか。 #inclu…
GoingNative 2012のスライドを眺めていたらびっくりしたのでメモ。 STL11: Magic && Secrets | GoingNative 2012 | Channel 9のスライド24枚目。 map<string, int> m; for(const auto& p1 : m) for(const pair<string, int>& p2 : m) このfor文、どっちが速い?って問い。答えは上の方</string,></string,>…
C++の行列演算ライブラリEigenを使うとNMFが超簡単に実装できる。 Eigen http://eigen.tuxfamily.org/index.php?title=Main_Page NMF : Non-negative Matrix Factorization Wikipediaとか、この文献見るといいです。 Daniel D. Lee and H. Sebastian Seung (…
constexprな関数はstatic_assertでコンパイル時にユニットテストできる。 // ユークリッド互除法による最大公約数 constexpr int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); } // constexprな関数gcdのユニットテスト static_assert(gcd(1, 1)…
Boost.Iterator のtransform_iteratorとcounting_iteratorを使ってfizzbuzz_iteratorを作ってFizzBuzzを解いてみた。http://ideone.com/5nAWjそれだけ。
今更ながらF#でFizzBuzz書いた。http://ideone.com/IlUMc遅延評価による無限データ構造という奴ですな。