Haskell

正規表現

正規表現を超える (http://d.hatena.ne.jp/kazu-yamamoto/20090309/1236590230) Perl で正規表現が再利用できない本質的な理由は、正規表現は別の言語であって、Perl ではないからだ。Perl にとって、正規表現は異分子なのだ。Perl の関数を書いても、正規表…

メモ

Haskell programming tips (http://haskell.g.hatena.ne.jp/taninsw/20081223/p2) 後で読む。

メモ

>>> def id(*args): ... return args ... >>> zip(range(1,11), range(11,21)) == map(id, range(1,11), range(11,21)) True Haskell Python zip zip(2引数) zipWith map(f, 2引数) map map(f, 1引数) Haskellは、可変長引数の抽象化に弱い?

関数型言語の考え方

以下は私のHaskellなどの関数型言語に対する理解。先日リンクしたHaskellのPPTを見てイメージできた。私は関数型に関して素人なので間違いを含むかも。 for, whileなどのループの制御文は、内部イテレータな「高階関数」は内部に再帰を含んでいると思われる…

メモ

PythonでCleanやHaskellのリスト相当を準備 (http://pgkiss.web.fc2.com/functionalPython/1.html) あとでPythonでの実現方法を勉強してみるつもり。

car, cdr, consと無限リスト

昨日のHaskellの資料のエラトステネスのふるいを元に無限リストの扱いを考えてみた。Pythonのcar、cdr、consは、jijixiさんのコードを拝借(http://jijixi.azito.com/cgi-bin/diary/index.rb?date=20070101#p01)。 -- Haskell sieve [] = [] sieve (p:ps) = p…

メモ

「ときどきの雑記帖 i戦士篇」日記経由でメモ。あとで読む。 Haskell プログラミング 〜 純粋関数型言語への誘い〜(http://www.mew.org/~kazu/haskell.pdf) 以下、Python版の実装。出典元は省略。 クイックソート def qsort(L): if len(L) <= 1: return L re…

パターンマッチ

『ふつける』を読んでいる。最近仕事が忙しく勉強があまり進んでいない。 以下パターンマッチを使える箇所。 関数定義 case式 パターン束縛 (パターンマッチではないかも) 以上の3つが出てきたが、これ以外にあるのだろうか?

ふつける

ふつけるを途中で放置していたので初めから読み直しているが、分かりやすい and Haskell楽しい。関数型言語は何でもリストに置き換えて考えるというのが見えてきた。無限リストを簡単に扱えるので、Pythonとは違って無限リストをたくさん使えそう。Pythonのi…

Haskell覚えること多すぎ

Haskellを久しぶりに勉強したが、覚えることが多すぎる。例えば、Listに関して先頭に要素の追加が、3:[2,1,0]だったり、n番目の要素の取り出しが、list !! nだったり、objがlistの要素かの判定が、elem obj listだったり…。また型チェックが厳密過ぎて整数型…

ふつける

今日、「ふつうのHaskellプログラミング」(「ふつける」)を地元の書店で買ってきた。「Exceptional C++」も買おうと思ったのだが、なぜか売り切れていたので、アマゾンで予約した。「ふつける」は、まだ少ししか読んでないが、「入門Haskell」よりも読みやす…