«前の日記(2006-09-14) 最新 次の日記(2006-09-16)» 編集

Matzにっき

迷惑メール対策なら Dr.WEB
『Dr.WEB メールデーモン』、MTA 用迷惑メール対策製品です!


2006-09-15 [長年日記]

_ [言語] The Universe of Discourse : Design patterns of 1972

ある言語で頻繁に使われるデザインパターンは、他の言語ではパターンでさえない。 よって「デザインパターンは言語の弱さを示すサインである」という話。

確かにブロックを持つRubyではVisitorパターンや、Iteratorパターンは もはやパターンとは呼べないレベルだし、Observer、SingletonやDelegatorは ライブラリで対応できちゃう。

ということは、デザインパターンが頻出する言語は、「弱い言語」である、 ということであり。言語設計者はデザインパターンが頻出しない言語を目指すべき、ということ?

そうなのかも。とはいえ、「マクロが解答」というのも癪な話である。

_ [言語] PythonSpeed

Pythonを高速化する細々としたテクニック。 多くはRubyにも適用可能だ。

_ [言語] HAML: A new view template language for Rails on Ruby on Rails softlogger

Hampton Catlinによって開発された新しいテンプレート言語。 「HTML Abstraction Markup Language」なのだそうだ。

!!!
%html
  %head
    %title Client Admin Site
    %meta{"http-equiv"=>"Content-Type",
       :content=>"text/html; charset=utf-8"}/
    = stylesheet_link_tag 'tabbed'
    = javascript_include_tag 'tabbed'
  %body
    #application
      #header
        .container
          .statusbar
            .logo
              %strong Admin Interface
            .menu= link_to 'logout',
               :controller => 'account', :action => 'logout'
          %br{:style=>"clear:both;"}/
          .tabs
            %ul.navigation
              %li= link_to 'Member Approval', member_admin_url
              %li= link_to 'User Management', user_admin_url,
                 :class => 'selected'
              %li= link_to 'Pages', page_admin_url
              %li= link_to 'Reports', reports_url
              %li= link_to 'Help', '/'
      #page
        #content
          //These will only render if there is
             a non-false value returned from the helper
          #errors= print_flash(:error)
          #notice= print_flash(:notice)
          = @content_for_layout
        #sidebar= @content_for_sidebar || false
        %hr/
      #footer
        %p= "Copyright Hampton Catlin 2006"

えーと、慣れたら使いやすい....のかもしれない...多分。

_ 『ホーム・アローン3』

テレビで放映していたものを子供たちに見せた。

映画は自分たちで楽しむばかりであまり子供には見せてなかったんだけど(ポケモンかアニメにしか興味を示さないし)、 なんか、みんながみんな気が狂ったように笑うんだけど。

他の人(悪党)が痛い目にあうのがそんなに面白いのかしら。

確かに可笑しいけど。

というわけで、この種のものがウケると分かったので、 他にも見せてみようかしら?

本日のツッコミ(全8件) [ツッコミを入れる]
_ 凡人 (2006-09-21 23:22)

Haskellにおける遅延評価とLispにおけるマクロは、同じような働きをするとするならば、rubyには、マクロでは無く、遅延評価機能を追加する事にするというわけにはゆきませんでしょうか?<br>ただし、この追加は、今のrubyの言語仕様やインタープリターからするとかなりかなり難しいのでしょうか?

_ まつもと (2006-09-22 08:03)

Haskellにおける遅延評価とLispにおけるマクロが同じ働きをするとはあまり言えないんじゃないかな、と思います。オーバーラップする部分があっても、実際にはあんまり大きくないような。<br>それはそれとして、Rubyに遅延評価を入れるかどうかですが、Haskellのように言語そのものに組み込むのはかなり難しいというか、現実的には不可能だと思います。<br>ただし、Lazyなリスト(generator)の活用は不可能ではないと思います。たとえば、Enumerable#mapが現在のArrayではなく、Generatorを返すようになれば、立派な遅延評価と言えると思います。とはいえ、それでも相当面倒なのですが。

_ みずしま (2006-09-23 00:16)

> Iteratorパターンはもはやパターンとは呼べないレベル<br>内部イテレータに限定すればそうだと思いますが、外部<br>イテレータに関してはRubyでも未だにパターンなのでは?

_ まつもと (2006-09-23 00:32)

外部イテレータもgeneratorライブラリで対応できると思います。<br>Rubyにデザインパターンが必要ないとまでは言いませんがね。

_ お邪魔虫 (2006-09-23 15:56)

メソッドが「良きに計らえ」の1つしか存在しない言語を作ってください。

_ hama (2006-09-23 16:05)

真のAIを実現するプログラミング言語があるとしたら、<br>それはLispかLisp的なものだと思いません?

_ まつもと (2006-09-23 17:41)

思いませんね。> 真のAIの実装言語<br>真のAIのコアがどんな言語で実装させるか想像も付きませんが、Lisp(的)でなければならない理由はあまり思いつきません。Lispは素敵な機能がテンコ盛りの言語ではありますが、生産性の少々の違いはともかく、普通の言語でしょう。<br>むしろ、真のAIの本質は(将来存在できるとしたら)、様々な経験を通じた学習でしょうし、それはいかなるプログラミング言語とも関係ないでしょう。J・P・ホーガン「未来の二つの顔」参照。

_ 凡人 (2006-09-24 09:19)

「真のAI」とはどのようなものなのかは、私には全くわからないですが、より進歩した「AI」のコアは、ハードとしては、従来のノイマン型コンピュータであり、言語としては、C++でいいのではないかと思います。<br>この「AI」アルゴリズムは、外界から入力した情報を自ら正準化し、正準化した情報を元に、汎用的な遺伝的アルゴリズムを駆使して解を決定し、外界に出力した結果を入力し、遺伝的アルゴリズムのパラメータを修正して、再度解を決定し、再度外界に出力する、というようなものではないかと思っています。<br>私は、このアルゴリズムの開発に、Rubyが貢献してもらいたいと思います。

お名前:
E-mail:
コメント:
[]

«前の日記(2006-09-14) 最新 次の日記(2006-09-16)» 編集

RSS feed meter for http://www.rubyist.net/~matz/ track feed Matzにっき Creative Commons License This work is licensed under a Creative Commons License.