タグ

- 関数型言語に関するokojo3のブックマーク (8)

  • プログラミング言語オタが非プログラマーの彼女に言語世界を軽く紹介するための10言語

    via Twitterオタが非オタの彼女にTwitter世界を軽く紹介するための10ユーザ まあ、どのくらいの数のプログラミング言語オタがそういう彼女をゲットできるかは別にして、 「オタではまったくないんだが、しかし自分のオタ趣味を肯定的に黙認してくれて、 その上で全く知らないプログラミング言語の世界とはなんなのか、ちょっとだけ好奇心持ってる」 ような、ヲタの都合のいい妄想の中に出てきそうな彼女に、プログラミング言語のことを紹介するために 習得させるべき10言語を選んでみたいのだけれど。 (要は「脱オタクファッションガイド」の正反対版だな。彼女にプログラミングを布教するのではなく 相互のコミュニケーションの入口として) あくまで「入口」なので、アーキテクチャに過度に依存するアセンブラ等の低級言語は避けたい。 あと、いくら基礎といってもBrainf*ckやUnlambdaのような難しすぎるも

    プログラミング言語オタが非プログラマーの彼女に言語世界を軽く紹介するための10言語
    okojo3
    okojo3 2008/08/01
    「純粋関数型で許される計算順序の規定」を体現するモナド 「純粋関数型言語の非正格性」を体現する無限リスト
  • d.y.d. memo: POPL 2

    17:17 08/01/30 ところで C++JavaScriptPHP が批判されてるのを見ると思わず何か言いたくなってしまうのだけど、 考えてみるに、他の言語だと割とどうでもいい。そういう意味では、今の自分が好きなプログラミング言語は この3つということになるのかなあ……などと徒然なるままに思いました。 単純に、つきあいが長い方から3つというだけかもしれない。 いやしかし、PHPに対する批判の多くはその通りであるとは思うのですが。 Attacking PHP で触れられてる「リストであり辞書でもある」 array ってあれは普通に便利じゃないです? 結構他の言語でも欲しくなるのですが。 17:08 08/01/29 PHP で Yコンビネータ PHP じゃ Y コンビネータつくれない と聞いて。 <?php // PHPでは関数呼び出しは 関数名(...) か 変数(...

    okojo3
    okojo3 2008/02/16
    lambdaやクロージャは何と何を使ってできてるのか/「booleanとif文も全部関数だけで実現できちゃった。」 …… λ計算。
  • λ Calculus - まずは遅延評価から : 404 Blog Not Found

    2008年02月04日07:00 カテゴリLightweight Languages λ Calculus - まずは遅延評価から うーん、まずY Combinatorというのはおじさんたちが悪かったかな。ギター習いたてでいきなりFの音を出すようなもんだから。 Haskell のリストと遅延評価が少し分かった - IT戦記 Y コンビネータって何? - IT戦記 まずは、遅延評価についてきちんとおさらいしておこう。 慌てるな、ループは急に止まらない まずは、以下の式を考えてみる。 (function(a, b, c){ return a ? b : c; })(true, 1, 1+1); 実行してみると、1となるはずだ。しかしここで重要なのはこのことじゃない。後ろの1+1が実行されるかだ。このことはどうやって確認したらよいだろうか。以下のようにしてみればいいはずだ。 var ELSE =

    λ Calculus - まずは遅延評価から : 404 Blog Not Found
  • 大人のためのブラックボックス読解講座――クロージャとオブジェクトの微妙な関係(その2)

    大人のためのブラックボックス読解講座――クロージャとオブジェクトの微妙な関係(その2):プログラミング言語の進化を追え(1/3 ページ) 前回に引き続き、Scheme言語の処理系、Gaucheを開発している川合史朗氏が、クロージャの機能を検証し、関数型言語とオブジェクト指向言語の関係について解説していきます。今回は、クロージャとオブジェクトのより深淵を探求します。 抽象化ツールとしてのクロージャ C++的なオブジェクトの世界では、オブジェクトの実体とは「ひとかたまりの構造体としてメモリ上に置かれたインスタンス変数の値」にすぎません。オブジェクトのポインタを取れば、それは事実上、その構造体へのポインタを持っていることになります。クロージャを「関数」中心で見ていると、その実体は「オブジェクト」の実体とは異質なもののように思えるでしょう。 確かにクロージャのナイーブな「実装」は、関数ポインタと環

    大人のためのブラックボックス読解講座――クロージャとオブジェクトの微妙な関係(その2)
  • About Haskell

  • しつこく老人 - sumiiのブログ

    「渋滞の向こう側 - 関数型言語の学び方」について、題名とは裏腹に「高速道路後の大渋滞」っぽいものを強く感じてしまったので、discourageではなくencourageするつもりで、敢えてツッコミを入れます(一部はコメントにも書きましたが、すべて書くと長大になりそうなので)。 単に関数型言語のプログラムが書ければよい、というのであればTAPLなど不要なのは事実です。あくまで、プログラミングや実装技法は(たとえばインターネット高速道路のおかげで)ほぼわかったとして、もし先に進みたいなら、さらに理解するための教養です。CプログラマがCPUアーキテクチャの勉強をするようなものかもしれません。 「インタプリタを作りながら…」「言語処理系をつくる人には参考になる」あたりは、限りなく間違いに近いと思います。型チェッカだけならともかく、TAPLのようなパターンマッチと代入によるsmall-step r

    しつこく老人 - sumiiのブログ
  • なぜ関数プログラミングは重要か

    John Hughes, Institutionen för Datavetenskap, Chalmers Tekniska Högskola, 41296 Göteborg, SWEDEN. rjmh@cs.chalmers.se この日語訳は原著者の承諾を得て山下がここに公開するものです。 この訳文についての、御指摘などは山下伸夫(nobsun .at. sampou.org)までおねがい いたします。 翻訳最終更新日 : 2011-09-17 原文 "Why Functional Programming Matters" 日語訳PostScript この論文は1984年以来何年ものあいだChalmers大学のメモとして回覧された。 1989年と1990年に幾分か改訂をしたのが[Hug89]と [Hug90]である。この版はもとのChalmer大学のメモ のnroff原稿をもとに

  • 2005-10-18

    されてしまったらしい。遊びで作ったもののほうが来の研究より(ごく一部で)ヒットするという罠。 しました。いや、すべて壊れたわけではないのですが、メイン環境であるVMwareの仮想ディスクのファイルがI/Oエラーで読めなくなったので、仕事ができません。中のファイルのバックアップはあるのですが、とりあえずノートPCから仮想ディスクをコピーして復旧…できるかなあ。;_; 追伸:復旧成功。ルートとホームをわけていて、壊れたのはルートだけだったので楽でした。 たまに混同されているようですが、両者は直交な概念です。「単相型の型推論」も「型推論のない多相型」も普通に可能です。何となく思い出したので書いておく。 ついでに追加。 型推論:変数や式の型をプログラマが宣言しなくても、言語処理系が文脈から推論してくれる機構。MLとかHaskellとか。 型検査:変数や式の型が合っていることを言語処理系が(普通は

    2005-10-18
    okojo3
    okojo3 2005/11/23
    型推論と型検査、静的な型つけと動的な型つけ、強い型つけと弱い型つけ
  • 1