ラベル Haskell の投稿を表示しています。 すべての投稿を表示
ラベル Haskell の投稿を表示しています。 すべての投稿を表示

2010年3月31日水曜日

Haskell本

本格的にHaskellの勉強を開始。

最初はこちらの本を読んでた。

小さいので持ち運びに便利で、学術的な書き方で好感が持ているものの、サンプルが見にくい。もっぱら電車の中読み専用。
こちらはぶ厚いので持ち運びは無理ですがサンプルがGHC対応なので、もっぱら自宅で使ってます。

さ、がんばろ。

2010年2月21日日曜日

Haskell入門その4

再帰処理
---------------------------------------
--  Listの長さを取得する
---------------------------------------
mylength          :: [a] -> Integer  -- 型宣言
mylength []       = 0                -- リストの最後の定義
mylength (x:xs)   = 1 + mylength xs  -- 先頭以外のリストを再帰計算
{-
  x=最初の要素、xs=残りのリスト
  head                    :: [a] -> a
  head (x:xs)             =  x
  tail                    :: [a] -> [a]
  tail (x:xs)             =  xs

  使い方
  I:\haskell>ghci
  Prelude> :l test012.hs
  *Main> mylength [1..999]
  999
-}

ちょっとわかってきたような気になってきたことが示唆される

2010年2月20日土曜日

Haskell入門その1

test001.hs

module BMI where
type BMI = Double
stdBMI :: BMI
stdBMI = 22.0
type Height = Double
type Weight = Double
bmi :: (Height, Weight) -> BMI
bmi (h,w) = w / (h ^ 2)



コマンドプロンプト


I:\haskell>ghci test002.hs
GHCi, version 6.12.1: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package ffi-1.0 ... linking ... done.
[1 of 1] Compiling BMI ( test002.hs, interpreted )
Ok, modules loaded: BMI.
*BMI> bmi(1.71,79.5)
27.18785267261722



う~む、まだ楽しくない