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

長方形を表現

SICPの問題2.3。長方形を表し、周囲の長さと面積を計算する手続きを作る。 今回は、問題2.2とほぼ同じなので、以下にソースと実行結果を示します。 $cat rectangle.hs data Point = Point Integer Integer instance Show Point where show (Point x y ) = "(…

平面上の線分

今日は、SICPの問題2.2を解いてみます。問題は、線分を表現するデータ構造を作り、その線分の中間点を求めよという問題。データ構造は、x座標と、y座標を表すデータ構造を作って、ポイントを表すデータ構造を作れとなっているんだけど、そこは割愛。そのかわ…

使える文字

前回、関数の名前で定義できない文字を使いエラーを出していたので、名前に使える文字をまとめてみます。まず、関数名。 1文字目は、アルファベットの小文字か、アンダースコア。 それ以降は、アルファベットの大文字、小文字。数字。アンダースコア。シング…

有理数の計算

前回の記事へ、id:nobusunさんからツッコミをいただいて、原因判明。Haskellの変数名は、小文字英数から始めないといけなかったんですね。で、id:nobusunさんが示していただいた、ソースに変更。 $ cat yuuri.hs data Yuuri = Yu Integer Integer yAdd::Yuur…

dataが苦手

今日は、有理数の計算(足し算)をしようとして、 data Yuuri = Yu Integer Integer YAdd::Yuuri -> Yuuri -> Yuuri YAdd (Yu s1 b1 ) (Yu s2 b2) = Yu (s1*b2+s2*b1) (b1*b2)というプログラムを書いて、ghciで実行しようとしたのですが、 $ ghci yuuri.hs L…

haskellグループにはいりました

最近、忙しくて本を読むだけで、日記をかけていないのですが、haskellグループにキーワードをついかしたくて、haskellグループにはいりました。

演算子=関数?

のびのびなHaskell日記さんのところのid:muscovyduckさんのコメントより カッコを外すと問題が生じるのは、'-'(マイナス)も実は関数(二項演算子)だからです 二項演算子は関数では無く、()で囲んだときに関数になると思っていたのですが、ほんとのところ…

関数と演算子の関係

haskellでは、演算子よりも関数の方が結合が強いみたいです。 例えば、1 + 2 * 3の計算をしようとして、 (+) 1 2*3とかくと9になってしまいます。 Prelude> (+) 1 2*3 9期待した動作にしたいのなら Prelude> (+)1 $ 2 * 3 7と、書くと大丈夫みたいです

$

最近は、いそがしくてSICPの問題が解けていないんですが、ふつうのHaskellプログラミングを読んでいます。ふつけるを読んでいて、入門Haskellにもでてきていたのですが、$というものの便利さに気づきました。 入門Haskellでは、$は何もしない関数として紹介…