タグ

2008年11月2日のブックマーク (3件)

  • Quine いろいろ - 兼雑記(2008-11-02)

    Quine の難しい点はたぶん、 自分自身を出力しようとして永久に書き終わらないよギャース クォート文字列中にクォート文字を入れられないよギャース という2点じゃないかなぁと思います。前者は変数を使えば簡単です。後者はクォート文字をエンコードできるようにしてやる、っていうのがまぁ基的な考えかたではないかと思いますが、これは色々方法があります。一般的な作り方としては以下とかがすごくわかりやすかったです。 http://d.hatena.ne.jp/KeisukeNakano/20070814/1187070401 format 系 多くの言語で手軽に書ける…と思う。 %s で自分自身を出力できる && クォート文字列は %c で、っていうのが基的な発想。 Ruby だと、 printf a="printf a=%c%s%c,34,a,34",34,a,34 とかが基形。いくつか短くする

    Quine いろいろ - 兼雑記(2008-11-02)
  • ゆの in Cyan - takuto_hの日記

    いまさらですが。 X = _ = 'X X.(/) = method^(_): X X.(<) = macro method^(_): print("ひだまりスケッチ×365 "); say(_); X X / _ / X < 来週も見てくださいね!

    ゆの in Cyan - takuto_hの日記
    yhara
    yhara 2008/11/02
    [ゆの in language
  • Rubyのオープンクラス:猿のようにパッチを当てない方法

    class String def foo "foo" end end puts "".foo # prints "foo" オープンクラスの問題は明白です。我々はソフトウェア設計の古くて議論の余地のない原則であるモジュラリティを使うことが可能です。長年に渡って、ものすごい数の概念が開発されてきました。それらの概念はいずれも増え続けるコードベースを考慮したモジュラリティを得るために開発されたものです。ローカル変数対グローバル変数、レキシカルスコープ対動的スコープ、多数の名前空間システムなどなど。これはまだ進行中のプロセスです。コンポーネント指向を行うという発展中の考えと、物理的なコンポーネントを組み立てて製品を作るのと同様に、ソフトウェアはコンポーネント化可能だという考えを考慮してください。モジュラリティは、我々が理解しているように、大切なソフトウェア資産です。 従って、オープンクラスとオー

    Rubyのオープンクラス:猿のようにパッチを当てない方法