Functional Programming

Compile-time Garbage Collection

つまりですねぇ,型をあるスコープ内で定義して,かつその型をそのスコープの外に返せるようにするには, (upward funarg problem を解決するために) LISP 同様 compile-time GC が要るんじゃないのかなぁ〜,なんてめがっさ思わないっかなー? ま〜,全部グ…

Two-phase Name Lookup と Environment Problem

C++ LISP (LISP だけじゃないけれど) テンプレート定義 引数として関数を受ける関数の定義 テンプレート定義内の依存名 関数内の自由変数名 依存名が実際に指しているもの 自由変数が実際に指しているもの 型 関数 テンプレートの Point of Definition 関数…

簡易 lambda 表記のための実装

っていうことでなんか思い立ったが吉日,半日ぐらいかけて,既存の関数オブジェクトに対して bind 不要の部分引数束縛・関数合成の構文を可能にするアダプタを書いてみました的な. http://d.hatena.ne.jp/Cryolite/20050516#p1 を (本人的には) 劇的に改良…

簡易 lambda 記法 - bind を用いない部分評価・関数合成,っていうか bind 嫌い嫌いだいっきらいっ!

昔っからずっと思っておりましたんですが,ばいんどきらい. bind( plus, _1, 1 );ほらもうきらいきらいだいっきらい.ばいんどしんぢゃえ. plus( _1, 1 );こう書きたい.めがっさ可読性上昇.ほら,こんな書き方ができたら,あなたも今日から初めてみよう…

C++ の range で iterate 相当のことがしたいときの value_type

C++ で iterate 相当の機能を提供する range の value_type はどうすれば良いのでしょうねぇ,という思関数期特有なお悩み. C++ の場合,関数として多相関数オブジェクトが指定できる (し,実際そういうものを指定したい) 上に,関数が ad-hoc な多相性を発…

full-expression という構文単位にプログラミングパラダイムの境界線を見出してみるテスト

C++ における full-expression という構文単位で閉じた世界が関数言語的な世界で,その full-expression によってその full-expression の外の世界に及ぼされる副作用が IO という考え方でプログラミングパラダイムの境界線を見出してみるという突拍子も無い…

ふと思いついた

range を受ける for_each アルゴリズムは実は mapM_ (アンダーバー付きね) 相当じゃないでしょうか,とか言い出したら偉い人たちに散々に怒られる気がするのでやめておこうそうしよう.

もにゃど的アダプタ

あ〜,くそぉっ!!もにゃど分かんねっ!!もにゃど分かんねっ!!もにゃど分かんねっ!!もにゃど分かんねっ!!もにゃどをちゃんと理解してて,あと関連するプログラミング言語・理論あたりについてきちんとサーベイすればある程度のとこに出しても恥ずか…

今日の収穫物

わーい, amazon に頼んでおいたものが来たー. ISBN:4044292019 ISBN:0130661023 ISBN:4044292027 ISBN:0201633922 ISBN:4044292035 ISBN:0471606952 ASIN:B000EPFRDG ISBN:0134843460 ふふふ,上記のを全部マスターしてより洗練された Cryolite として進化…

Introduction to Functional Programming Using Haskell

あと,自分へのご褒美用にもう1冊. Introduction To Functional Programming, 2nd Edition (Prentice Hall Series in Computer Science)

SICP Exercise memo

なぜか突然 SICP の Exercise のメモ.全然ブログのネタにしてなかったけれど http://d.hatena.ne.jp/Cryolite/20050714#p1 以来,鋭意継続中.目指せ全 Exercise 制覇.というか SICP はタダで全文見られるので,実はこれ結構面白い企画なのではないかと思…

fix + memonizememoize

今更 http://www.kmonos.net/wlog/52.php#_0308050827 http://d.hatena.ne.jp/Nabetani/20050901#p2 らへんを読んで,以前ここら辺の話題で遊んだことがあったので http://d.hatena.ne.jp/Cryolite/20041124#p1 そのときのやつをちこっとだけ変形.

SICP

何かいつの間にか仕事場でSICP読むとかいう話になってる. 「あっそー.とりあえず頭数に入れといてー.」 とかそっけなく返事しておきつつ,内心"Multiparadigm Programming in C++"な方向でジャックしてやろーかしら,とか企んでたり.ひひひひひ. とゆー…

FC++ Formal Review

ちょっと前にFC++について言及したけど(id:Cryolite:20040331),ちょうどFC++がBoostに入るか否かのFormal Reviewがあったようで http://aspn.activestate.com/ASPN/Mail/Message/boost/2042213 今回は見送りということで,(´・ω・`)ショボーン(関数プログ…

C++で関数プログラミング

必要にせまられ(無理やり必要を捏造しw)Boostのfunctor系ライブラリを使い始める. boost::functionはただのfunctorのtemplateといったところか.とはいえgenericな形で可変項数に対応しているのは当然で,引数の型指定に新しいtemplateの記法を採用して…