OCamlのべき乗

floatしかべき乗の演算子がないのは何故?

# 2.0 ** 3.0;;
- : float = 8.

int

# 2 ** 3;;
Characters 0-1:
  2 ** 3;;
  ^
Error: This expression has type int but is here used with type float

arcsinのテーラー展開でπをもとめる(ocamlで)

let rec power m = function
    0 -> 1
  | n -> m * power m (n-1)
;;

let rec factorial = function
    0 -> 1
  | n -> n * factorial (n-1)
;;

let rec calc_pi = function
    0 -> 3.0
  | n -> (float_of_int (3 * factorial(2*n))) /.
 (float_of_int ((power 2 (4*n)) * (power (factorial n) 2) * (2*n+1))) +. calc_pi (n-1)
;;

これだとcalc_pi 6ぐらいでneg_infinityになってしまう。あと型で結構つまづく。

普通に求めるヤツ

let mc () =
let x = Random.float 1.0 in
let y = Random.float 1.0 in
if sqrt ((x ** 2.0) +. (y ** 2.0)) <= 1.0 then 1
else 0
;;

let rec count n res = match n with
  0 -> res
| _ -> count (n-1) (res + mc())
;;

let calc_pi n =
  let res = count n 0 in
  (float_of_int res)*.4.0 /. (float_of_int n)
;;

SOMA COMA PART.3

vector loversは良いが、アルバム持っているからな。octogenのもたついてるっぽいリズムがメローでよかった。mirror musicってsilicon soulの別ユニットなのか。

ProductName SOMA COMA PART.3
オムニバス,オクトゲン,ベクター・ラバーズ,スラム,ミラー・ミュージック,パーシー・X vs ブラッドシュガー,ザ・ブラック・ドッグ,デヴィッド・ホルムス&スチュアート・マクミラン,アレックス・スモーク,スキントレード
SOMA/OCTAVE-LAB / ¥ 2,678 (2009-08-12)
在庫あり。

SOMAが毎年夏にリリースするエレクトリック・チルアウト/ダウンテンポコンピレーション第3弾が登場 !! 野外レイヴシーズンにリリースされヨーロッパでも人気の高いクラブミュージックファンにフィットする気持ちイイダウンテンポのサマー・テクノチューンを収録。グラスゴーテクノシーンの至宝、アレックス・スモーク、SOMAオーナーのスラムを始め、ブラック・ドッグからアンドリュー・ウェザオールの変名プロジェクト、ブラッドシュガーの90年代の名曲、デヴィッド・ホルムズまでUKテクノシーンのメロウサイドを切り取った注目作 !

arcsinのテーラー展開でπをもとめる

ビュフォンの針でとおもったんだけど、なぜかarcsinのテーラー展開が目に留まったので。

def factorial(i):
   return 1 if i ==0 else i * factorial(i-1)

def calc_pi(i):
   pi = 0
   for n in range(i+1):
       pi += 3.0*factorial(2*n)/(2**(4*n)*((factorial(n))**2)*(2*n+1))
       print pi
   return pi


if __name__ == "__main__":
   print calc_pi(16)

ProductName 「無限と連続」の数学―微分積分学の基礎理論案内
瀬山 士郎
東京図書 / ¥ 2,625 ()
在庫あり。

Metallica

itunesいじっててmetallicaにはまった。

nothing else matters と and justice for allが好き。metallicaといえば大体この二枚。

ProductName Metallica
Metallica
Universal/Mercury / ¥ 1,940 (1991-08-12)
在庫あり。

ProductName メタル・ジャスティス
メタリカ
UNIVERSAL INTERNATIONAL(P)(M) / ¥ 2,500 (2008-09-12)
通常10~14日以内に発送

そういえば、初めて買ったアルバムがAppetite for Destructionなのだよね。

ProductName Appetite for Destruction
Guns N' Roses
Geffen / ¥ 1,429 (1990-10-25)
在庫あり。

patienceも良いですね。

ProductName G N' R Lies
Guns N' Roses
Universal/Polygram / ¥ 1,020 (1990-10-25)
在庫あり。

大那

純米吟醸。

1252583050

自社田ってあるけど、地元の山田錦なのかな。

そういえば、若手の夜明けっていう試飲イベントに行ったときに美味しかったのが大那と一白水成だった。

OCamlでbz2

どう書く?org : データの圧縮と展開

#require "bz2";;

let compress str =  Bz2.compress str 0 (String.length str);;
let uncompress str =  Bz2.uncompress str 0 (String.length str);;

let _ = uncompress (compress "test");;

参考

camlzipってのもあるんだが、ちょっと使いにくい感じがした(require出来ないし)

ホリエモン×ひろゆき 語りつくした本音の12時間

U隊長が、「ジムクレイマーみたいな読みづらいのは当分いい」とか言うので買ってみた。

サクッと読んでみたが、ゆるくて面白かった。マンションに関しては、個人が価値を見出せればそれていいんではないのとゆるく考えているんだけどU隊長はどう思っているんだろうかね、本を読み終わったらあとで聞いてみよう。

あと、編集のヒトのboldの打つ場所とか良かった。

OCamlでfork

どう書くの外部の実行ファイルを呼び出しって問題を解く。

ブロックする版は

#load "unix.cma";;
Unix.system "/bin/sleep 3";;
print_string "waited\n";;

でいいんでしょ。

で、ブロックしない版をこんな感じで書いたら、

let pid = Unix.fork () in match pid with
     0 -> Unix.system "/bin/sleep 3"; print_string "waited\n"
   | _ -> print_string "not wait\n"
;;

warningがでる。

Warning S: this expression should have type unit.

よくわからなくて気持ち悪い。

追記090909

ignoreを使えばよいとはてブで教えてもらった。

# ignore;;
- : 'a -> unit = <fun>

unitを返す

let pid = Unix.fork () in match pid with
     0 -> ignore(Unix.system "/bin/sleep 3"); print_string "waited\n"
   | _ -> print_string "not wait\n"
;;

Drug-like Properties: Concepts, Structure Design and Methods: from ADME to Toxicity Optimization (Part 2)

Part 2は物性の話。ここらへんはQSPRの範疇だから割と読みやすかった。 ほとんどおさらい的な内容だが、Chemistry色が強いので、知っとくとケミストと話がしやすいかもしれない。

ProductName Drug-like Properties: Concepts, Structure Design and Methods: from ADME to Toxicity Optimization
Edward Kerns,Li Di
Academic Press / ¥ 9,048 ()
在庫あり。

  1. Rules for Rapid Property Profiling From Structure
  2. Lipophilicity
  3. pKa
  4. Solubility
  5. Permeability Disposition, Metabolism and Safety

7の溶解性の部分は他の章よりも厚い。予測モデルとかのstate-of-the-artが載ってなかったりするけど、モデルをうまく合成計画に取り入れるのも今どきは重要なんではないかね。