タグ

ProgrammingとFunctionalに関するdelta81のブックマーク (5)

  • J - 関数型言語はC言語よりも高速

    23 やべーやる気出ねー。 一週間ぐらい放置してたらやる気出るかと思ってたんだけど、全然何もしてないのだった。 というわけで、リハビリがてらなんか書こう。関数型言語がC言語よりも高速だという話。 http://d.hatena.ne.jp/w_o/20050924#p2 ここらへんの話の関連。C言語では、操作が、「メモリを変更する」という具体的なものになってしまうので、最適化が難しいという話。 次のコードを考えよう。 struct stack { char *buf; int pos; }; void push( struct stack *stk, char v ) { stk->buf[stk->pos] = v; ++stk->pos; } void pop( struct stack *stk ) { --stk->pos; }; void nop( struct stack *s

    J - 関数型言語はC言語よりも高速
  • 404 Blog Not Found:Typeとは俺のことかとClass言い

    2006年11月17日01:15 カテゴリLightweight Languages Typeとは俺のことかとClass言い 実は、TypeもClassもその意図は同じである。 finalventの日記 - ぶくまより オブジェクト指向とか あと、関数型言語っていうか、そういうのがOOPとどういう関係にあるのか、どうもすっきりしない。関数で表現できるならクラスとか要らないのでは?というか、ま、このあたりはよくわからない。404 Blog Not Found:オブジェクトは難しくない。難しいのはクラスそれで、オブジェクトとは何か、といえば、「自分が何が出来るのかを知っているデータ」ということになる。 そして、型がある言語における関数が何かといえば、「自分がどんなデータを受け付けるのかを知っているサブルーチン」ということになる。CからHaskellまで、これに例外はない。 だから、「犬が吠える

    404 Blog Not Found:Typeとは俺のことかとClass言い
  • ひげぽん OSとか作っちゃうかMona- - 「計算機プログラムの構造と解釈(SICP)」を読み終えて

    約半年をかけて計算機プログラムの構造と解釈(SICP)を読み終わりました。 (途中で、練習問題をスキップしたりしましたが・・・) 半年もかけたのでちょっとだけ振り返って見ます。 SICPを読む過程で得たもの まずはSICPを読む過程で得たものからざっと列挙してみよう。 構文解析を理解し自前で実装できるようになった 字句解析を理解し自前で実装できるようになった ストリームを理解した 遅延評価を理解した 手続きが first class objectである言語での考え方を学んだ 型変換の導入の動機とその意味を理解した 手続きの抽象化の導入の動機と過程を学んだ 高階関数を使ったり書けるようになったりした クロージャを理解した Schemeを書けるようになった 再帰処理を自然に書けるようになった フルスクラッチでインタプリタを書けるようになった コンパイラを自前で書くことが出来そうだとの感触を得た

    ひげぽん OSとか作っちゃうかMona- - 「計算機プログラムの構造と解釈(SICP)」を読み終えて
  • 思いて学ばざれば則ち殆うし - sumiiのブログ

    あるところに同じようなことを(ほとんど成り行きで)書いたのですが、重要な問題のような気がしてきたので、こっちにも書いてみる。 一般に、関数型言語やプログラミング言語(および計算機科学、ないし任意の専門)についての情報は、 一般書・一般誌、Webやメーリングリストやブログ 教科書・専門書 論文 口頭での議論(学会発表や質疑応答、グループのミーティング、部屋での会話) などで交換されます。 で、一般に情報の「ディープさ」は上から下へ行くほど濃くなると思うのです(少なくとも僕の専門分野ではそう)。そのごく一部である1.だけ(しかも日語onlyで)「勉強」していろいろと議論するのは、(何もしないよりは良いのかもしれませんが)非常に危険です。その危険をちゃんと意識していればno problemですが。「高速道路」の話と同じことかも。 たとえば、日のネット(?)では今になって妙に持ち上げられている

    思いて学ばざれば則ち殆うし - sumiiのブログ
    delta81
    delta81 2006/04/13
    shiroさんのコメント「Haskellスゲーらしいぞ、とか俺もSICP読むぞ、みたいなのがファッションであってもひろまってくれるのは、底上げという意味でたいへん有意義だと思うわけです。」
  • 関数、オブジェクト、クロージャ - FAX

    (thanks to id:koyachi、del.icio.us/rtk2106) OOPとFPと。関数、オブジェクト、クロージャの使い分けについて考えます。 関数型が良いのか、オブジェクト指向が良いのか、知りたいと思っていました。色々なページを読み、現時点で一応の答えを得ました。 カウンタを例にして、関数、スコープ、オブジェクト、クロージャの順に見て行きます。関数関数は処理です。入力と出力があります。関数型プログラミングでは、関数同士の入力と出力を連結しプログラムが構成されます。 var current = 0; function next(v){ return v + 1 } function previous(v){ return v - 1 } ok( 1 == ( current = next(current) ) ); ok( 2 == ( current = next(cu

  • 1