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

こんにちは

こんにちは。hasko改め、haskonです。また、よろしくおねがいします。

デジタル表示

SICPは、もともと大学の教科書のため、数学的な問題が前半多いです。 なので、たまには違うジャンルのプログラムでも書いてみます。 今回は、Best of Ruby Quizという本に出てくる問題。 Quiz2。数字の文字を引数で受け取り、電卓の様な表示を行うというプロ…

href

もう知られているかたも多いと思いますが、hrefの御紹介。 href hrefとは、コマンドラインからHaskellの関数を検索するプログラムです。作者は、来月頭、ふつけるをお出しになる青木さんです。

エディターは何をおつかいですか?

プログラム書く人には、お気に入りのエディターがあると思うのですが、みなさん何をおつかいなのでしょうか?自分の場合には、Debian上でscreenを使い、画面を分割し、vimを使いながら、別の画面でghciを使うという感じでやっております。Haskellなら、入門H…

パスカルの三角形

SICPの問題1.12は、パスカルの三角形。 パスカルの三角形は、三角形の辺上の数は全て1。三角形の内部の数はその上の2つ上の数の和という三角形。 こんなかんじ 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 ............rubycoさんやtakatohさんがやられていたやつ。 SICP…

再帰的にプロセスと反復的プロセス

問題1.11は、次の定義を再帰的プロセスと反復的プロセスで書けというもの n < 3 のとき f(n) = n n >= 3 のとき f(n) = f( n -1 ) + 2f(n -2) + 3f(n-3)では、再帰的方法の実装から saikiF n | n < 3 = n |otherwise = saikiF ( n-1 ) + 2 * (saikiF ( n -2 …

ふつうのHaskellプログラミング

id:sshiさんのところで発見。日本語のHaskellの本。ふつうのHaskellプログラミングがAmazonに登録されたようです。わたしも早速注文しました。ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門作者: 青木峰郎,山下伸夫出版社/メーカ…

アッカーマン関数

問題1.10はアッカーマン関数。また、いつもどおり、schemeで書かれている関数をHaskellに ackermann x y | y == 0 = 0 | x == 0 = 2 * y | y == 1 = 2 | otherwise = ackermann ( x -1 ) ( ackermann x ( y - 1))で、問題は次の引数のときの値は何か?だから…

haskellリングつくってみました

はてなリングを見ていて、schemeリングや、OCamlリングがあるのに、Haskellが無いのはと思い、haskellリングを作ってみました。 Haskellの勉強をしている人や、興味をもっている人の集まれる場にでもなれればと思いつくりましたので、よろしければ登録してみ…

置き換えモデル

置き換えモデルとは、どうやら出てくる関数を置き換えていって、最後に計算をするモデル。遅延評価といっていいのかな。問題1.9では、引数を1増やす手続きincと引数を1減らす手続きdecをつかって、2つの整数をたす方法を置き換えモデルを使い、4と5をたす過…

Newton法

章1.1.3にでてくるNewton法をやってみます。 Newton法とは、数xの平方根の値の予測値yがあれば、yとx/yの平均値とるという計算でさらにより路側値が得られるというものらしい。 とりあえず、本どおりに実装。 goodEnough guess x = (abs ( x - (guess * gues…

SICPの問題解いてくよ-問題1.3

次は、問題1.3。3つの引数をとり、そのうち大きい2つの引数の2乗を足したもの返す関数を定義するという問題。とりあえず、addpow :: (Num a) => a -> a -> aという、ふたつの引数の2乗を足す関数を定義。 addpow x y = (x*x) + (y*y) あとは、if文で大小関係…

SICPの問題解いてくよ

またまたまたおひさしぶりです。Haskoです。今日から、SICPこと計算機プログラムの構造と解釈の問題をHaskellで解いていこうかと思います。もともと、このネタは、日本のHaskellerなら誰もが知っているだろうnobsunさんこと山下伸夫さんがやられていたのを自…

HaskellのAPI検索

またまた相当おひさしぶりです。haskoです。今日は、HaskellのAPI検索を御紹介。Hoogleここでは、Haskellの関数などを調べることができます。 ただ、それだけではhugsなどで、:tを使い調べるのと同じですよね。ちょっと違うのは、まず関数名の一部でも検索す…