アカウント名:
パスワード:
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
海軍に入るくらいなら海賊になった方がいい -- Steven Paul Jobs
いまだにラムダ計算がわかりません (スコア:1)
妖精哲学の三信
「だらしねぇ」という戒めの心、「歪みねぇ」という賛美の心、「仕方ない」という許容の心
Re:いまだにラムダ計算がわかりません (スコア:1, 興味深い)
プログラマの視点から見たラムダ計算はコールバックや関数オブジェクトをさらに
柔軟にしたものと考える事が出来ます。つまり、関数同士で演算を行って新しい関
数を作る事が出来るのがラムダです。
背後にある理論から勉強するより、先にHaskelやC++のboostで実際に使ってみたほ
うが感覚が掴みやすいものの典型かと思われます。
# 間違ってたらレスで指摘よろ
Re:いまだにラムダ計算がわかりません (スコア:1)
関数って実はマクロ展開で表現できるんだなーと思った24歳の春。
関数のインライン展開とかまさにマクロ展開だしねと納得したものであったことよ。
ただし展開順序(関数で言うなら評価順序)は決まってないので式の形によっては展開順序の違いで結果が変わる。
(どう展開しても変わらない式もある。)
また展開が永遠に終わらないような式もある。
この性質のため展開される過程によって計算過程としての関数が表現できる。
(数学では普通、関数と言えば計算過程じゃなくて値の対応関係を表す。)
でも、考えてみれば数学では人間が規則に従って式の書き換えを繰り返すことで様々な計算を実現してるんだからそれを突き詰めて
普通の代数式ですらない純粋な書き換えのためのマクロとしての関数と変数だけからなる形で
計算手順を抽象化したモデルとして書き換えシステムだけを抽出したのがλ計算といえばそう。
ただそんななんで変数と1引数関数定義と書き換え規則だけしかなくて他のオブジェクトもタイプも何もないから、
何か計算をするには関数定義をいろいろに見立てないといけない。
で見立てると論理や自然数、それらを利用した制御構造、そしてそれらを使った各種の計算が記述できることがわかって
エライ人がその記述&計算能力がチューリング・マシンと同等だと証明したと。
そうなってみるとチューリングマシンよりは式を書くのが楽なのでプログラム関係の様々な性質の証明によく使われるようになったと。
(特にそれを拡張した型付きλ計算が人気)
さらにはλの成功にヒントを得て関数ではなくてオブジェクトを基本単位とするσ計算とか、π計算(こっちはよく知らない)とかが近年では出てきたと。
Re: (スコア:0)
>オブジェクトを基本単位とするσ計算とか
全然知らんのですが、もしかして
「メンバ変数が1つだけのオブジェクト」
とかをたくさん使う方法論なんでしょうか??
「複数のメンバ変数が有る1つのオブジェクトは、1つのメンバ変数だけを持つオブジェクトの複数の組み合わせに変形できる」
といったところとか??
#JSPの拡張タグライブラリって、拡張タグのHTML(XML)の「属性」がJavaクラスの「属性」にマッピングされるんだよね。初めて見たときショッキングだったよ。なんとなくメソッド呼び出しの引数にマッピングされるもんだと思い込んでいたので。まあ確かにJavaのメソッド引数は(コンパイル後に)名前情報が残らないからXML属性にマッピングするのは無理なんだけど。