「ほっ」と。キャンペーン

1日食塩摂取量

高血圧ガイドラインにあった一日の食塩摂取量の推定値を計算するプログラムをHaskellで作った。

nacl :: Float -> Float -> Float -> Float -> Float -> Float
nacl na cr age weight stature = 0.0585 * 21.98 * ((na / cr) * (prUcr age weight stature)) ** 0.392

prUcr :: Float -> Float -> Float -> Float
prUcr age weight stature = -2.04 * age + 14.89 * weight + 16.14 * stature - 2244.45

プログラムと言っても数式をそのまま記入しただけだ。Hugs で実行してみると、1日の尿中クレアチニンの排泄量の推定値は、年齢と体重と身長の3つのパラメータから決まるのが分かる。また、尿中ナトリウムの濃度と尿中クレアチニンの濃度が1:1だと、一日の食塩摂取量の推測値が3.7gくらいになるのが分かる。

Main> :l Nacl.hs
Main> prUcr 56 82 178
1735.21
Main> nacl 120 120 56 82 178
3.656425

推定値の値を計算するための複雑な計算式があると、つい敬遠しがちだが、Haskellなら計算式をそのまま入力するだけでプログラムができてしまうので便利だ。計算式がプログラムとして動いてしまうと、いろいろな実際の値を入力してみることで計算式の意味がよくわかる。

Haskellはプログラミングを知らない人に簡単なプログラム電卓として教えるのがよいような気がする。ループや分岐を利用するような複雑なプログラムを素人が使うことはあまりない。しかし、上のような計算式を他のプログラム言語で作ろうとすると、データの入出力のプログラムを作ったりなど結構面倒になってくる。Haskellだとプログラムは式をコピーするだけだし、入力は関数名と引数の値をスペースで区切って入力するだけだ。

Haskellを簡易プログラム電卓として使うと割りきってしまうと、結構Haskellを使う対象者の範囲が拡がるのではないだろうか。

おまけ

JavaScript 版一日食塩摂取量計算プログラム
[PR]
by tnomura9 | 2010-09-27 03:38 | 話のネタ | Comments(0)
<< レアアース禁輸 理解するということ >>