2006-01-01から1年間の記事一覧

課題2 データ構造をBNFに合わせる

2006-11-29 - メモ日記の記事の課題2。データ構造にダミーのデータコンストラクタが入ったのは、tParseというクラスメソッドをすべてのデータ型に対して実装しようとしたのが原因。これをしようとしたことで、tParseの引数と返り値が(a,[String])という型で…

課題

亀プログラム処理系の発展を考える。 課題は、 パースエラー時、エラーメッセージ出力 BNFデータ構造のダミーコンストラクタを消す Expandで新しい木構造を作るのはメモリのムダ遣いなのでやめる

はじめてのモナド

まず課題1。亀プログラム処理系プログラムがエラーメッセージを返せないのは、すべてのエラーがMaybeモナドのNothingになってしまい、それ以外の情報を抽出できないため。一方で、Maybeモナドを亀プログラム処理系プログラムで使用するのは自然。なぜならモ…

書いてみたプログラム

亀プログラム。 もともとは、「増補改訂版Java言語で学ぶデザインパターン入門」のInterpreterパターンの章で出てくる簡易言語(亀プログラム)の解釈をHaskellで書いたらどう書くのかという試み。BNF参考 <program> ::= program <command list> <command list> ::= <command>*end <command> ::= <repeat command> | <primitive command> <repeat command> ::= repeat <number> <command list> </command></number></repeat></primitive></repeat></command></command></command></command></program>

型、型クラスとMaybe

亀プログラムに向けて型と型クラスの練習。go/left/rightだけ考えてみる。型クラスはJavaでいうトコロのインタフェースに相当する。型クラスの関数を実装してインスタンス化。ムリヤリMaybeも入れてみるが、そのせいなのかなんなのかいまいちピンと来ず。ダ…

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

再帰的手続きには、再帰的プロセスと反復的プロセスのふたつの種類がある(そうだ)。 階乗計算の例で言うと、 再帰的プロセス -- 階乗(再帰) myfact_r n = if n == 1 then 1 else n * myfact_r (n-1)これは遅延演算を行っている。再帰の最後になってみないと…

フィボナッチ数計算(続 再帰的・反復的)

再帰的プロセスは、計算の木構造をめいっぱい展開することになる。 だから再帰的プロセスより反復的プロセスのほうが低コスト。 以下、反復的プロセスが、再帰的プロセスよりも低コストになる典型例 再帰版フィボナッチ数計算 -- フィボナッチ数(高コスト) m…

listとwhere letとwhere

listとwhere letとwhereの使い分けがいまだによくわからない。

買いました

ふつうのHaskellプログラミング ふつうのプログラマのための関数型言語入門作者: 青木峰郎,山下伸夫出版社/メーカー: ソフトバンククリエイティブ発売日: 2006/06/01メディア: 単行本購入: 25人 クリック: 314回この商品を含むブログ (320件) を見る熟読する…

ニュートン法による平方根・立方根

平方根 -- 平均値 myaverage x y = (x + y) / 2 -- 平方根 mysqrt x = let { good_enough guess y = ( abs((guess*guess - y) / y) < 1e-10 ) ; val_improve guess y = myaverage guess (y/guess) ; sqrt_iter guess y = if (good_enough guess y) then gues…

Mapってなに。

リストのすべての要素に処理を行う。ただそれだけ。 Main> map myreverse [[1,2,3,5], [3,5,2,5], [2,4,6,8]] [[5,3,2,1],[5,2,5,3],[8,6,4,2]] Main> map (mymsort (<)) [[4,2,1,5], [3,5,2,5], [6,4,2,8]] [[1,2,4,5],[2,3,5,5],[2,4,6,8]]

listで練習 その2

Haskellの標準ライブラリのリファレンスを探してます。 リバース2 (++)を使わないリバースは降参。思いつきません。 挿入ソート -- insert sort myisort _ [] = [] myisort f (x:xs) = [y|y<-sorted, (not (f x y))] ++ (x:[y|y<-sorted, (f x y)]) where so…

listで練習

リバース (myreverse xs ++ x)じゃダメ。myreverse.hs myreverse [] = [] myreverse (x:xs) = myreverse xs ++ [x] マージソート mymsort.hs mymerge (f) [] x = x mymerge (f) x [] = x mymerge (f) x y = if (f) (head x) (head y) then [head x] ++ (myme…

RFC2822概要 (1)

●行の定義 メッセージは文字のラインに分割される。ラインは2つの文字、キャリッジリ ターンとラインフィードで区切られた一連の文字である;それはキャリッジリ ターン文字(CR, ASCIIコードで13)にすぐ続いてラインフィード文字(LF, ASCIIコードで10)で…

Webショートカット

ケータイで頻繁に見るWebページを、メニュー画面からより簡単にアクセスできるようにする。 メニュー画面にアイコンを置く? メニュー画面から単操作でブックマーク画面に飛ぶ? 最近見たページリンク?。

今日のキーワード

ヒューマンプラットフォーム 常に電源が入っているという意味での常時接続 データへのアクセス。俯瞰と詳細/拡大と縮小

テレビでのネット利用

ポインタをリモコンから(赤外線?)で操作する。 リモコンの十字キーを操作してリンクに飛ぶなんて、めんどくさくて話にならない!!!

ホームユースロボットとは何か。

技術の進歩を後押ししたものは何か。 便利さ 車など コミュニケーションの拡大 電話、インターネットなど 便利さを求めるのは限界があるし、大きなブレークスルーが必要。ロボットに便利さをどこまで求めらるのか。「ホームユース」の時点でコミュニケーション…

ケータイ/PDA内の情報セキュリティ

ケータイ用ストレージの暗号化???業務用ケータイ/PDAの普及 →情報漏洩防止の需要基本的に、ケータイにはパスワードがない

無線LANの利用

ゲームのキャンペーンで、キャンペーン会場でアドホックにサンプル配布(PSPの例)。 赤外線通信による名刺交換

プログラミング言語で語る

d:id:yaneuraoが面倒そうなコトになっている(該当記事)。プログラミングのコトには限らないけれど、自分のある部分のコトをすごいと思っていると、どうしてもその気持ちを日本語で表現したいと考えてしまう。しかし、力量は日本語で説明しなくても結果が説明…

Web版ホームページビルダー

ホームページビルダーのように、ドラッグ&ドロップで画像を配置し、レイアウトを決めることができるアプリのWeb版。JavaScriptでできる?。それともJavaアプレット?。

「Winnyの話、どうも納得いかないんだよね」について

PC

IPAがWinnyの脆弱性を発表した記事を読んだときにもやもやと感じたことが、はっきりと書いてあるエントリ。危険があるなら修正する(してもらう)というのがベストな対策であるという前提のもとで話しを進める。「独立」行政法人というのはどの程度独立した機関…

リンクという障壁

タブブラウザのタブ、もしくはブラウザのタイトルバーをテキストエリアにドラッグアンドドロップすると、テキストエリアにそのWebページへのリンクが挿入される。Webページそのものというオブジェクトと文字の配列でしかないURLとの間にある障壁。

「「はてなダイアリー」ヤバい、というかブログ全体がもうヤバい」というエントリ

過激さを狙ったタイトルだ。このエントリが言う「ヤバい」は「すごい」の同義語ではないよね。 「はてなダイアリー」ヤバい? ざっと見、はてなダイアリのユーザが増えていないというのは、わりと意外な気がした。たぶんダイアリのユーザは増えていなくてもはて…

mixiには書くことがない

ブログでさえエントリが少ないのに(書くことがないわけではない。あとで書こうと思っていて、書く段階になるとなにが重要で書いておきたかったのか忘れてしまう)、mixiに関していうとさらに書くことがない。薄々感じてはいたが、感じていた通りの状態だ。

ネットワーク = コミュニケーション

ネットワークというのは、要するにコミュニケーションだという話し。情報家電なんていう言葉があるけれど、よく近未来像なんかで出てくる例の「ケータイで自宅の冷蔵庫の中身を知る」なんてコトはそもそも必要ないんじゃないのか?というコト。ネットワークに…

コミュニケーションによる共有意識

CNET japanかどこかにあるブログのエントリ内で、伊藤端子(@南カリフォルニア大)という方が言ったとされる以下の言葉がある。 内容のないコミュニケーションによる共有 要するに、ケータイから送られるメールの本文には、ほとんど内容なんかないよというコト…

オーバーロード

PG C#

オーバーロードされたメソッドはキャストされている型で決定される。なんで実行時にインスタンスの型に従ってメソッドが選ばれると勘違いしたのかわからないが。ClsBとClsCはClsAのサブクラス (1) public class FFF { public void hoge(ClsB a); public void…

当然なのに思いつかなかった視点

CSよりES - Devel::Bayside