p_tan's blog

勉強日記です。ツッコミ大歓迎

2012-01-01から1年間の記事一覧

関数に渡された実引数を文字列化する

R

元ネタ -> 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] "…

RでF#のパイプ演算子

R

2014/03/26追記 magrittrパッケージに以下で書いてるようなパイプ演算子があります。 下でやってることよりもっとちゃんとつくってあるので、 unaryとか必要ないです。 > 1:3 %>% sort(dec=T) [1] 3 2 1 追記ここまで Rは演算子の定義ができるので、F#のパイ…

直積集合 (追記:expand.grid)

R

2012/09/20 追記 R Tips 第2版を購入して読んでいたら、expand.gridなる関数があるじゃないですか・・・。 The R Tips―データ解析環境Rの基本技・グラフィックス活用集ということで、下でやっていることはexpand.grid関数でできます。 ああ、もっと検索力が…

Windows XPでVundle使おうとしたらハマった

vimのプラグイン管理用プラグイン(ややこしい)であるVundleをWindows XPで使おうとしたらハマったので、解決した手順をメモっておく。 問題 VundleでいざBundleInstallしようとしたら、error: inflate: data stream error (incorrect header check) とか言わ…

const参照引数でハマった

C++

const参照の引数でうっかりしてハマったこと。以下のような、レンジの全ての要素から、一括してある値を引くようなヘルパ関数を作っていた。 (実際は足し算や掛け算などもサポートするように汎用的に書いていたが) template<class T, class Range> void Sub(Range &r, const T& v</class>…

データメンバに触らなければヌルポインタの参照外しを行なっても実行時エラーにならない

C++

恥ずかしながら知らなかった。 ヌルポインタの参照外しを行ったらすぐにセグメンテーションフォールト等で落ちるもんだと思い込んでたけど、データメンバに触らなければ実行できてしまうようだ。 規格上認められてるのか、それとも未定義動作なのか。 #inclu…

autoを使おう

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,>…

EigenでNMF

C++

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な関数は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でfizzbuzz_iterator

Boost.Iterator のtransform_iteratorとcounting_iteratorを使ってfizzbuzz_iteratorを作ってFizzBuzzを解いてみた。http://ideone.com/5nAWjそれだけ。

F#でFizzBuzz #fsharp

F#

今更ながらF#でFizzBuzz書いた。http://ideone.com/IlUMc遅延評価による無限データ構造という奴ですな。