2007-11-01から1ヶ月間の記事一覧

代数的データ型その7

多相的な型の宣言というのが出てきましたが、ここではパス。型コンストラクタとデータコンストラクタは同じ名前を使うことができるそうです。 data Anchor = A { aUrl :: String, aLabel :: String } これまでは上記のように書いていましたが、こんな風に書…

代数的データ型その6

代数的データ型の章はまだまだ続きます。今回はフィールドの更新について。更新と言ってもHaskellでは再代入はできないので、既存の値を元に新しい値を作るのですが、その際に一部のフィールドだけを変更して値を作ることができます。サンプルプログラムを作…

登録語数

クロスワード辞典の登録語数が5,000個になりました。登録して下さった方ありがとうございます。今年の2/12時点で3,055個だったので9カ月半ぐらいで2,000個弱の登録数です。登録語数が増えるにしたがって登録のペースが落ちていくとすると、10,000個になるの…

代数的データ型その5

今回はセレクタについて。フィールドラベルを使って代数的データ型を宣言すると、フィールドラベルと同名の関数が自動的に宣言されて、フィールドの値を取得できるとのことです。id:MAS3:20071124#c1195912479のコメントでも使われていました。それでは早速…

バージョンアップしました

バージョン1.7.0です。 ヘルス&ビューティー・時計・ベビー&マタニティ検索に対応しました。 評価の星を画像で表示するようにしました。 ステータスバーにリンク先URLを表示するようにしました。 約1年ぶりのバージョンアップです。

代数的データ型その4

データにアクセスするのに専用の関数を作っていますが、無名関数で代用してみました。 data Anchor = A { aUrl :: String, aLabel :: String } main = do putStrLn $ "Url : " ++ (\(A u _) -> u) getAnchor putStrLn $ "Label: " ++ (\(A {aLabel = l}) -> …

代数的データ型その3

data Anchor = A { aUrl :: String, aLabel :: String } というようにフィールドラベルを付けることができます。こうするとフィールド名でデータにアクセスできるようになります。フィールドラベルを使った方法でサンプルを書き換えてみます。 data Anchor =…

代数的データ型その2

data Anchor = A String String このように宣言した型のフィールドにアクセスするにはパターンマッチを利用します。早速サンプルを作って試してみます。 data Anchor = A String String main = do putStrLn $ "Url : " ++ getUrl getAnchor putStrLn $ "Labe…

数学ガール

数学ガール (数学ガールシリーズ 1)作者: 結城浩出版社/メーカー: SBクリエイティブ発売日: 2007/06/27メディア: 単行本購入: 58人 クリック: 1,055回この商品を含むブログ (967件) を見る読んでいる途中です。電車の中で読んでいるので数式は目で追っている…

代数的データ型

本では、構造体スタイル、列挙型スタイル、共用体スタイルと名付けて3つに分けて説明されています。そのうちの構造体スタイルについて説明を読みました。型を定義する時に使うのはdata宣言。こんな例が出てきました。 data Anchor = A String String Anchor…

Haskellではコンパイル時に型がチェックされます。そういう言語は多いですよね。特徴的なのは型推論。おかげでほとんどの場合型を宣言しなくても大丈夫です。とは言っても完璧ではないので明示的に宣言できるようになっています。そのときに使うのが「::」。…

演習問題

8章の演習問題を解きました。ポイントフリースタイルで書く問題。まずはlstrip lstrip :: String -> String lstrip = dropWhile (== ' ') そしてrstrip rstrip :: String -> String rstrip = reverse . lstrip . reverse 最後にstrip strip :: String -> Str…

Perlのバージョンアップでいろいろエラー

さくらインターネットのPerlのバージョンが5.8.4から5.8.8に変わりました。事前にメールで予告があった時には特に影響ないかなと思っていたのですが、実際はそんなことはなくてほとんどのスクリプトがエラーになってしまいました。原因はモジュールのインス…