2014-06-01から1ヶ月間の記事一覧

ArrayのArrayをコピーする時、「こいつぁ…Shallow copyの匂いがするぜぇ…?」と疑うこと

F#

普通に配列をDeep copyしたいならArray.copyで良いわけです。以下のコードを見る限りちゃんと、xとyが違う配列の実体を持っていそうだぞとわかる。 > let x = [|1..5|];; val x : int [] = [|1; 2; 3; 4; 5|] > let y = Array.copy x;; val y : int [] = [|1…

不純な時はList(not list)使うのか

F#

不純野郎ですまない。値を束縛後にガンガン突っ込みたいときは、F#でなく.NETが提供しているList(not list)を使うとよいってことだ。 open System.Collections.Generic let x = List<int>() [1..10] |> List.iter (fun i -> x.Add i) x |> Seq.iter (fun z -> pri</int>…

ベクトル(文字列)の頻度を可視化したい with dplyr, ggplot2

R

ggplot2が苦手な俺がどうやってそれをやったのかという備忘録。必要なパッケージは以下の3つ。適当にinstall.packagesしておくべし。 library(ggplot2) library(magrittr) library(data.table) サンプルデータは適当に作った文字列ベクトル x <- sample(let…

tupleは関数の引数でもバラして受け取れるのが素晴らしい

F#

以下のようにローカル変数に対して、バラして受け取れるのは知っていたが、 > let a,b = (100, 123);; val b : int = 123 val a : int = 100 関数の引数に対してもこういう書き方していいのか。 > [(1,1);(3,3)] |> List.reduce (fun (x1, x2) (y1,y2) -> (x…

日次データから月末のみを抽出する

R

今すぐ貴方がフォローすべきたった1つのトゥイッターアカウントである@Nekopuni_氏が[R]日次データから月末のみを抽出する - http://t.co/UGE4zFnCK8— レベル相関皆殺しマン (@Nekopuni_) 2014, 6月 14なことを呟かれていて、詳細は以下のBLOGポストにある…

autoとdecltypeで楽がしたい

C++

C++03の世界では、mapのiterator作ろうとするとこれえらい量を冗長な感じでタイプしなければならなかったが、C++11から導入されたdecltype使うとなんか…C++なのにふつくしい、そんなコードに思えてきたっつー話。 例えば std::map<int, std::string>::iterator getIterator(std</int,>…

ベクトル場を矢印で可視化したい

R

昔書いたコードを掘り起こした。どこを参考に書いたのかは忘れた。以下は二次元ベクトル場計算の例(調和振動子のポテンシャァル想定)。 gradient.harmonic.potential <- function(coordinate, x0, y0, k) { #Evaluate : -grad(Potential) x <- coordinate[1]…

負の数を書く時は、-と1の間にスペース入れる癖つけといた方がよさげ

F#

> let x = (3,4);; val x : int * int = (3, 4) > fst x;; val it : int = 3 > fst x - 1;; val it : int = 2 > fst x -1;; fst x -1;; ----^ stdin(15,5): error FS0001: Type mismatch. Expecting a ('a -> 'b) * 'c but given a int * int The type ''a -…

パターン・マッチに計算式入れちゃいかん

F#

掲題の件、そういうことです。はじめ let a = 1 let c = (2, 3) let b = 4 match (a,b) with | (_, 1) -> "A" | ((fst c)-1, _) -> "B" | _ -> "C" のように書いていたのだが、だめだった。 これは let a = 1 let c = (2, 3) let b = 4 match (a,b) with | (…