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

なんだかよくわからないながらも型で遊ぶ

数理論理学の試験勉強していて触発されて、少し遊んでみた。自分でもいまいちよくわからない。 なんか適当にやってても、インタプリタがいろいろアドバイスしてくれる GHC は素晴らしい。なんと付けるべきオプションまで教えてくれるんですよ。意味わからん…

funDeps

おぉー。初めて使った!意味わからんけどね。

type class

Haskell の型クラスは、引数の型によって動作を変えるためにあるの?

-fglasgow-exts

型クラスが使いこなせるようになりたい。

Cycle in class declarations (via superclasses)

なんじゃこりゃああぁぁぁぁ…。 というか、意味はわかるけど、じゃあどうせいっちゅーねん、みたいな。

はまり中

JavaScript の正規表現がさっぱりよーわからん…。そしてよくわからんながらも改行があやしい。 あと、GM_xmlhttpRequest のコールバック関数が受け取るものの型がよくわからん。responseText しかないの?なんか適当なメソッドでそのまま HTML にできんのか…

過去問

[1] 以下の文(sentence)の構文木(parse tree)を示せ. ... "以下の文(sentence)"ってのはわかる…。スゲーよくわかる。文は sentence だからな…。だが"構文木(parse tree)"って部分はどういう事だああ〜〜っ!?構文が parse って訳せるかっつーのよーーーッ!…

できた

最近ちょっと The New York Times なんてものを読んでみようと試みていて、いちいち辞書引くのが死ぬほどめんどくさかったので、ポップアップで意味をだしてくれるやつを作ってみた。どう考えても既にどっかにあるとは思うけど JavaScript というか GreaseMo…

圧縮

あみだくじを圧縮するアルゴリズムはわかったんだけど、その方法だと Haskell で実装するのは大変そう。今日は歯医者に行って口の中がかなり気持ち悪いので、他の言語でやってみよう!みたいな気分にはなれない…。 んで、麻酔が気持ち悪い上に非常に雨っぽい…

残念

あー、縦方向に圧縮しないといけなかったのか。まぁ、そりゃそうか。気が向いたら圧縮する関数でも書いてみるか…。

逆順になるあみだくじ

http://ja.doukaku.org/20/ から。これってバブルソートだよね。 makeAmida n = mapM_ putStrLn $ amida n where amida 0 = [take (2*n-1) $ cycle "| "] amida m = let line = take (2*n-1) $ cycle "| " in map (\n -> updateList n '_' line) [1,3..2*(m-…

ピラミッド

いわゆる息抜き。ちっこい問題を解くのは気楽だし、頭が活性化する(気がする)。 pyramid n = mapM_ putStrLn $ zipWith (++) spaces stars where stars = map (flip replicate '*') [1,3..2*n-1] spaces = map (flip replicate ' ') [n-1,n-2..0]

研究

大学院試験の志望理由書を書くために、それっぽいキーワードでいろいろ検索していたら、おもしろそうな研究がいろいろでてきた。 型付きアセンブリか…。前にどっかで聞いたな。笑

http://d.hatena.ne.jp/nskj77/20070714/1184429775 がすごい! sequence の動作がよくわからない感じだけど、なるほどなぁです。また今度 sequence の定義を確認しておこう。

アルファベットの繰り上がり

どう書く?org から。 atoz = map return ['A'..'Z'] next pre = [ h++t | h <- pre, t <- atoz ] start = concat $ iterate next atoz

はてなスター

わけもわからず自分のとこのやつを何度かかちかちやってしまった。 よくわからないものがあったらとりあえず押すとか、今のネットにおいては非常に危険な行為だよね。

Problem A Keitai Message

http://www.deqnotes.net/acmicpc/p0003/ja の問題。これは結構きれいに書けたと思われる。 import Data.List ( group ) button 1 = cycle ['.', ',', '!', '?', ' '] button 2 = cycle ['a', 'b', 'c'] button 3 = cycle ['d' ,'e' ,'f'] button 4 = cycle …

全加算器

どこぞで紹介されていたもの。 http://jp.youtube.com/watch?v=GcDshWmhF4A おもしろい。こういうの作りたいわー。

C言語 と関数型言語

C

C を書いていると、本質的な部分以外のことを大量に書かなくちゃいけないなーと思う。C しか知らない頃は何とも思わなかったけど、リストってすごく便利なデータ構造なんだなぁと実感。あと、代数型が便利すぎるよね。

コメントの位置

C

C で関数に対するコメントを書くときって、ヘッダファイルのプロトタイプ宣言のとこに書くべきなのか、普通に関数定義のとこで書くべきなのか、どっちなんだろう…。

プログラミングって難しい

C C#

リストの実装だけで bus error がでました。C って難しいね。 void add(IntList** p, char* key, int val){ ... } IntList のあとの "**" とかだけでもう悶絶もの。せめて参照がほしかった…。で、久々に Windows を起動して Visual C# を使ってみるも、IDE …

油売り

すごく投げやりな感じ。勉強しなきゃなのに。まさに油売り。aburawryyyyy。 type State = ((Int, Int, Int), History) type History = [(Cup, Cup, Int)] data Cup = A | B | C deriving Show s = 10 x = 7 y = 3 g = 5 move :: State -> [State] move ((a, …

Fastladder

なぜだかフィードが全然更新されない(ここ2日くらい)。Livedoor Reader に戻そうかなぁ。

Haskell のインストール

お手本はココ → http://d.hatena.ne.jp/yoshihiro503/20070706 確実に劣化している。みんなも是非、自分の好きな処理系の紹介に挑戦しよう! - 最近パソコンを買ったんだけど、使い方がよく解らない。という人のために、今日は Haskell のインストールの方法…

Fastladder の名誉のために

また調子がよくなったようです。やっぱり livedoor reader よりも速い気がするなぁ。

連想リストは?

C#

ちょっと C# で遊んでみた。昔、"プログラミングC#"を読んだはずなのに、完全に忘れてしまっている…。というかそもそも C っぽい書き方も忘れてしまった。とりあえず csharp-mode をアップグレードして hellowrold を書いて、ってのがうまくいったので、ちょ…

判明

C#

http://primates.ximian.com/~atsushi/mono-jp/c-sharp.html mono は基本的に C# の 1.0 なので、ジェネリクスは使えない、とのことでした。CVS から C# 2.0 のものを持ってくると使えるようです。

S 式計算機

今日の SICP 勉強会のテーマは Struts でした。この勉強会では、関数型と手続き型の話を交互にやることになったので、来週は関数型の話になるのです。で、来週のテーマは"S式計算機"。参加者全員がなんらかの言語で実装してきてくれることを期待したいです。…

Opera を使ってみる

Mac

Safari3 のテキストエリアで日本語を打つと、やたら入力がもたついてストレスがたまるので(なぜ?)、Opera を入れてみた。うーむ、結構いい感じである。とりあえず Emacs キーバインドが使えるのは評価高い。ほかのキーバインドはよくわからないんだけど。 そ…

StateT の中で例外をキャッチしたい

困る。catch とかをリフトすればいいのかな?(適当)