2012年3月7日のブックマーク (13件)

  • The Log of the No22 - Concatenative

    _ [言語] Concatenative Lispがブラックホールのような存在だと言われることの原因の一つに、現代的なプログラム言語の多くがlambda calculusを理論的な核にしていることが挙げられるのではないかしらん。 そしてlambda calculusへのマッピングでの理解が困難な言語は、一般に、抽象度の低い原始的な言語であると理解されてきた面が否めないのではなかろうか。 今、lambda calculusベースの言語を仮に「ラムダの子」と呼ぶとする。 「ラムダの子」は数が多く、そしてまた多くの言語がこれら「ラムダの子」の眷属となっている。 ところで、ある少数の言語は「ラムダの子」たちとは異なった生い立ちを持っていた。 このような言語にはAPLやJ、BackusのFPやその一族などがある。 彼らはcombinatory logicあるいはFP systemと呼ばれ

  • The Log of the No22 - それは逆ポーランドじゃない

    _ [言語][Forth][Joy] それは逆ポーランドじゃない(1) 一応、この前のエントリの続き・・・なのかな? Joyの(中の人の)指摘として、我々スタック族が使っている記法は、当は逆ポーランド記法じゃない、というものがあります。 逆ポーランド記法の元となるポーランド記法は、1920年頃ポーランド人論理学者Jan Łukasiewiczによって考案されたものだそーですが、ポーランド記法では括弧を使わなくても式の意味が一意に決まることが利点として知られています。 ということは演算子のarityは既知であることが前提であるわけで、その意味では可変長引数をとるLispの記法もまたポーランド記法ではありません。 さて、それはともかくとして、ポーランド記法を左右反転したものが逆ポーランド記法、そしてその逆ポーランド記法を採用したのがFORTHやPostscriptなどの「スタック族」

  • fam.cx

    This domain may be for sale!

  • fam.cx

  • 「晩に渋谷でパスタの会:双対編」アジェンダ&資料 - (保存用) 檜山正幸のキマイラ飼育記 メモ編

    イントロはマジメに(=ツマラナイ)予習復習だ 記号に慣れてね。 A×B A + B 1と0 idA = A (よく使う、特に僕は) f×K (idA = A の応用) f×g f + K f + g <f, g> と Δ [f, g] と ∇ (ただし、∇は“足し算”の意味でも使う) π1, π2 (ただし、下添字も使うときは π1A, B など) ι1, ι2 参考: 圏論のお勉強なら、Catyスクリプトでやってミソ - 檜山正幸のキマイラ飼育記 メモ編 計算(コンピューティング)の話をするとき、多くの場合: 射は計算行為のなんらかの単位 域は計算開始前の資源状況の型(つまり制約だ!) 余域は計算開始終了後の資源状況の型(ホーアトリプルを思い出せ) 射の方向は時間方向(過去から未来)と一致する。 くれぐれも、特定プログラミング言語や常識的な計算機構に捕らわれないこと。 例:f:int→i

    「晩に渋谷でパスタの会:双対編」アジェンダ&資料 - (保存用) 檜山正幸のキマイラ飼育記 メモ編
  • Prologとつき合う - Yet Another Ranha

    C81 3日目東ペ06a - COMFRK VOL. 3 ( http://comfrk.info/ )の宣伝のつもりで書き始めてます。 えーと記事のタイトルは「年末年始Prolog入門モドキ by ranha」ということになっていますが、嘘ですんで…。 ネムインダ 最近、SWI-Prologでは次のようなプログラム片がtrueを返すようになりました。 p :- p. ?- p. true ; true ; true ; ...ウウーン良いですね。いや…ダメだよコレは。 ということを、ぼくの担当分で紹介しています。といっても入門記事なので全く新規性のある話をしているわけではないのですが。 ここまでが記事の紹介です。 C81 3日目東ペ06aに来てくださいね!! この後は記事の目論みといいますかなんというか…。 所謂Prologのプログラムのセマンティクス(意味)というのをどのようにして与え

    Prologとつき合う - Yet Another Ranha
  • 純粋関数型アルゴリズム入門

    2016/2/14 開催の第一回 hs.hs 勉強会で用いたスライドです。 流れは以下の通りです。 1. はじめに 自己紹介や発表の目的について 2. GHC 7.8 からの変更点 GHC 7.8 の前後で起きたライブラリの変化と、その変化への対処法について 3. Haskell が遅いと言われるワケとか 遅延評価や各種データ構造の内部表現に起因する諸問題と、その対処法について 4. 知らないと損する言語拡張たち 型の表現力を高めたり、計算速度を向上させる種々の言語拡張について 5. FFI の話 Haskell での FFI の扱いと、身近なライブラリから見る実装例について(※一部抜粋) 6. おまけ(その他便利グッズの話) あるとコーディングがある程度便利になる言語拡張について 一部訂正あり: http://qiita.com/func-hs/items/51b314a2323b83

    純粋関数型アルゴリズム入門
  • ラムダ計算でハマる - imHo

    チャーチ数は、関数 f を x に何回適用したか、で数を表すらしい。まずは0から、 zero = λf.λx. x 1進めた数は succ で得られる succ = λn.λf.λx. f (n f x) 2つの数 m、n の足し算は、初期値 m にさらに n 回 f を適用すれば得られる plus = λm.λn.λf.λx. n f (m f x) 掛け算は、m の加算を n 回行う、ってことかな? mult = λm.λn.λf.λx. n (m f) x ここまではなんとなくわかったんだけど、指数がどうして次のようになるのかわからない: exp = λm.λn. n m 手で展開してみる: exp 3 2 2 = λf.λx. f (f x) 3 = λf.λx. f (f (f x)) exp 3 2 = (λm.λn.λf.λx. n m f x) 3 2 = (λf.λx.

    ラムダ計算でハマる - imHo
  • sicpstudygroup @ ウィキ - iwk

    このページを編集 このページを編集(メニュー非表示編集;α) このページをコピーして新規ページを作成 このページのページ名を変更 このページの編集モードを変更 このページの閲覧/編集権限の変更 このページにファイルをアップロード このウィキにファイルをアップロード(FTP機能/管理者のみ利用可) メニューを編集(メニュー部分は非表示で編集) 右メニューを編集(メニュー部分は非表示で編集)

  • λ代数、万能対象 - (保存用) 檜山正幸のキマイラ飼育記 メモ編

    自己適用の分析のために、確か適用構造だか適用代数だかという概念があったと思う。適用に相当する二項演算・があって、それがナニガシかの公理を満たすようなものだったと思うのだけど、あんまり憶えてない。 とりあえず、横内さんの『プログラム意味論』を探した。適用構造はなかったが、似たような話でλ代数があった。少しアレンジして述べる。 まず、λ演繹系(横内にはない)(V, L, |-)を次のように定義する。 変数の集合V Vから構文的な適用とラムダ抽象から生成された式(項)の集合L 2つの式M, Nから作られる同値性のjudgement M = N (単なる構文) M = N を導出するための書き換え/推論規則と、演繹(導出)可能性判を示す |-。 Sがλ演繹系なら、|- M = N という主張が意味を持つ。λ演繹系の具体例は形無しのラムダ計算から作れる。もっとも、書き換え/推論規則の具体的な構成は

    λ代数、万能対象 - (保存用) 檜山正幸のキマイラ飼育記 メモ編
  • 不動点をめぐる代数構造たち

  • 23 Universal Types

    syamino
    syamino 2012/03/07
    ランク2多相(rank-2 polymorphism),パラメトリシティ(parametricity)
  • 関数型プログラマのためのモナド理論(1)

    関数型プログラマのためのモナド理論 (1) 浜名誠 CAPS, IPL, 2007, November 6th 1 動機 • 「モナド」で Google すると、沢山の Haskell プログラマの苦労が見える • よく見る格言: Haskell のモナドを理解するのに圏論のモナドを理解する必 要はない • 「分かりやすい説明」というものが、当に分かりやすい? • モナドの理解を実行から追う、というのは話が逆 • 主張: 数学の方が簡単 • そもそもなぜモナドを使うとよいのか。プログラム意味論の歴史に理由がある • それらを解説 • また、モナドから直ちに出てくる圏論的構成は有用 • それらを通して、計算機科学でなぜ圏論が有用なのかの一例 feedback をお願いします。 2 全体の内容の予定 1. 圏論のモナドのアイデアと関連するいくつかの construction 2. 計算モナ