タグ

ブックマーク / propella.hatenablog.com (8)

  • 論理かるた - 言語ゲーム

    今日は証明するカードについて書きます。証明というとなんだか人間にも難しく、機械にやらすには高度な人工知能が必要だと思うでしょう。しかしコンピュータも電気も不要です。なんとこのカードは並べるだけで証明ができてしまうのです!とりあえずどんなのか見てみましょう。 自分でやりたい人は logiccard.pdflogiccard2.pdf をダウンロードして名刺用紙に印刷してください。用紙のサイズが合わない時は logiccard.svglogiccard2.svgイラストレータや Inkscape で編集するといいと思います。 このように印刷して、灰色の部分をポンチで穴を開けます。ホッチキス式のポンチではカード中ほどの穴に届かないので、その場合は手芸用のポンチを使うと良いです。 するとこのような謎めいたカードが出来上がります。 それぞれのカードはベン図になっています。穴の開いてい

    論理かるた - 言語ゲーム
    coppieee
    coppieee 2011/09/02
    たのしい!
  • 妄想パターンマッチ言語実例2(逆転パーサー7) - 言語ゲーム

    前から随分経ちましたが、前回 http://d.hatena.ne.jp/propella/20100321/p1 の続きです。久しぶりなので最初から考え直します。 データ 逆転パーサーでは、全てのデータは タグ 内容 内容... の正規形を持っている事にします。Prolog と一緒です。Pair 1 Nil や Apple はデータです。 プリミティブ型 とりあえず整数とタプルとリストと関数をプリミティブ型として考えています。プリミティブ型も正規形を持ちます。例えば 3 の正規形は Succ (Succ (Succ Zero)) だという事にします。 関数 関数はタプルからタプルへの写像です。表記は以下のような感じ。| で区切ってケースを追加する事が出来ます。パターンは | の後ろの方から前に評価され、マッチした所の左辺が返り値になります。後ろから評価する理由は、最初に一般的な場合を書い

    妄想パターンマッチ言語実例2(逆転パーサー7) - 言語ゲーム
  • 学歴と職について - 言語ゲーム

    http://d.hatena.ne.jp/ohnosakiko/20090124/1232795786 を読んでふと思った事。最近せっかく大学院へ行ってもろくな仕事に就けない!という話をよく耳にします。企業の採用戦略自体は市場原理の結果なので仕方ないです。でももうちょっと学生さんもポジティブに考えられないだろうかと思います。 不意にも修士や博士に進学出来ず、就職せざるを得なかった人はどこか心の底で引け目を感じていると思います。一方で、進学してしまったばかりに就職が遅れ、結局専門を行かせなかった人は半分騙されたとの思いでしょう。 自分の事しか知らないので、自分と美大の事を書きます。私が院を出る頃にうちの大学にも新しく博士過程が生まれ、正直心が惹かれました。もしどうにかして続けていたら、人生変わっていたかも知れないと今でも思う時があります。とはいえ当時は経済的負担を考えると全く非現実な話だ

    学歴と職について - 言語ゲーム
    coppieee
    coppieee 2010/12/26
    この人美大卒だったのか~。
  • Haskell でダックタイピング 、色々な型を混ぜて配列を作る。 - 言語ゲーム

    動的型言語の特徴の一つに、配列に色々な型のデータを混ぜられる事があります。いわゆるダックタイピングというやつです。例えば Javascript では ["1", 2, 3.4] のような配列を作る事が出来ます。Haskell のような強い型付けのある言語でこれを実現する方法を勉強したので書きます。 目標として、配列の中にあるデータを文字列として連結する事にします。Javascript で言うと、 append = function (xs) { var result = xs[0]; for (var i = 1; i < xs.length; i++) result += xs[i]; return result; } のような関数 append を作ります。append(["1", 2, 3.4]) の答えは "123.4" になります。 代数データ型を使う Haskell では直接リ

    Haskell でダックタイピング 、色々な型を混ぜて配列を作る。 - 言語ゲーム
    coppieee
    coppieee 2010/12/20
    目からウロコ
  • Coqで遊ぶその1: - 言語ゲーム

    CafeOBJ の雰囲気が分かった所で今度は Coq に挑戦。かなり難しいですが、あきらめずに Coq in a Hurry http://cel.archives-ouvertes.fr/inria-00001173 を元に勉強しています。 起動と終了 起動は coqtop で終了は Quit. です。また、macports でインストールすると emacs 用のスクリプトがついてきます。 M-x load-library coq-inferior M-x run-coq で実行すると便利。 Check: 要素から型を探す。 Check コマンドを使うと、関数型言語みたいに使えます。ただし計算はせずに型だけ表示します。nat が自然数型で、Prop が命題型(「ある」か「ない」かをあらわす)、Prop と似たようなのに bool (論理型) がありますが、使い分けるそうです。 Coq <

    Coqで遊ぶその1: - 言語ゲーム
    coppieee
    coppieee 2010/12/06
  • ネームスペース概論 - 言語ゲーム

    ネームスペースについて、色々調べたので今度は自分の考えをだらだら書く。 今思っているのは、ネームスペースを主要な言語の要素として考えたいという事だ。だいたい GC だとかオブジェクトだとか末尾再帰について色々うるさく言う人は沢山いるのに、ネームスペースは日陰者というか、言語開発者が最後に面倒くさそうに付ける物という程度の人気しか無い。モダンなネームスペースが特徴です!とセールスポイントに挙げてる言語に出会った試しが無い。 しかし世の中には名前が原因で起こる問題が沢山あるし、当はネームスペースの問題なのに他の問題と思われている物も沢山あると思う。そういう物にはネームスペースが解決の糸口になると思う。 やりたい事。まずネームスペースがどういう物か、どんな種類があるかを定義したい。そしてプログラミング技術に散在しているネームスペースっぽい問題の共通点を考えたい。 まずネームスペースが取り上げる

    ネームスペース概論 - 言語ゲーム
  • cola/flash ワークスペース - 言語ゲーム

    http://languagegame.org/tmp/ws/flash/Repl.html 今までさんざん同じようなプログラムを作って来たけど、懲りずに昨年 C5 で発表した Chaklboard 以来の新たなワークスペースを作りました。今回の言語は lisp です。Flash 上で動作するため、なんと IE でもちゃんと動きます! 使い方は Smalltalk の物と一緒で、式を選択して Do It か Print It をクリックするだけ、なんて直感的なインタフェース!まだ Wiki としての機能はありませんが、サンプルドキュメントがいくつか用意されていて、例えば (jump "Overview.html") を選択して Do It すると別の画面に飛ぶという具合です。下の欄に文書名を入れても飛びます。特に Flash らしい画像を使ったデモが見たければ、Graphics.html

    cola/flash ワークスペース - 言語ゲーム
  • 自己記述 lisp コンパイラ Tamacola のインタラクティブシェル完成。 - 言語ゲーム

    前回コンパイラが完成したと書いてから 2 ヶ月程経ち http://d.hatena.ne.jp/propella/20100507/p1 ようやく実用的なインタラクティブシェルが完成しました。これで Tamacola も普通の Scheme として使えます。こんなに時間がかかったのは、マクロを正しく実装するのに手間がかかったからでした。マクロが入ると、コンパイラの中でコンパイラを再帰的に呼び出す場合が生まれるので、今までグローバル変数使いまくりのやっつけで作っていたコンパイラではうまく行きませんでした。これから一ヶ月書けてドキュメントを書いて、出来たらコードを公開したいと思っています。しかし、簡単に解決出来る問題をすべて解決してしまって行き詰まっている状態なので、頭を整理するためにこの日記を書いています。 まず出来上がっていない機能について纏めます。そもそもプロジェクトの目的は、新しいプ

    自己記述 lisp コンパイラ Tamacola のインタラクティブシェル完成。 - 言語ゲーム
  • 1