タグ

ブックマーク / sumim.hatenablog.com (5)

  • “関数合成のススメ”の関数合成を Squeak Smalltalk で - Smalltalkのtは小文字です

    関数合成のススメ 〜 オブジェクト指向プログラマへ捧げる関数型言語への導入その1 - ( ꒪⌓꒪) ゆるよろ日記 メソッドを合成して新しいメソッドを生成するのはちょっと手ごわそうなのであとまわしにして、まずは簡単な無名関数を使ったバージョンから試します。 Smalltalk では無名関数はブロックと呼ばれ、式を [ ] で括ることで定義できます。 f := [3 + 4] これを評価する際には value というメッセージを送ります。 f value "=> 7 " 引数をとるブロックの場合は、次のようにコロンに続けて仮引数(変数名)を列挙し、| で手続き体と区切ります。 add := [:x :y | x + y] 引数をとるブロックの評価には value ではなく、引数の数だけ value: を重ねたメッセージを送ります。 add value: 3 value: 4 "=> 7 "

    “関数合成のススメ”の関数合成を Squeak Smalltalk で - Smalltalkのtは小文字です
    ukstudio
    ukstudio 2012/02/06
  • Ruby on Rails vs Smalltalk Seaside をお手軽にムービーで鑑賞 - Smalltalkのtは小文字です

    Smalltalk Tidbits, Industry Rants - Seaside and Rails Comparison Rails と Seaside でそれぞれ "Hello World!" Web アプリを作った(Ruby on Rails は出来合いのものを使用?)あと、バグを仕込んでわざとエラーを起こさせ、簡単なデバッグ作業を比較してみせる5分弱のムービーです。Seaside には Squeak Smalltalk ではなく、Cincom Smalltalk(VisualWorks)を使っています。VisualWorks のコードブラウザの使い方(クラスの新規作成やそれへのメソッドの追加や修正方法…)の入門にもお勧め。 個人的には、ちょうど Leopard をインストールしたところなので、こんなかんじの WebObjects 版みたいなのがあると併せて試せてうれしいですね

    Ruby on Rails vs Smalltalk Seaside をお手軽にムービーで鑑賞 - Smalltalkのtは小文字です
  • オブジェクト指向の概念の発明者は誰ですか? - Smalltalkのtは小文字です

    忙しい人のためのまとめ 一般に「オブジェクト指向プログラミング」と呼ばれる考え方には発案者が異なる二系統がある。(ただし簡単のため、次のうち前者から批判的に派生して生じたプロトタイプベースのオブジェクト指向はここには含めていない) アラン・ケイによる、変化に強い長期運用可能な遅延結合システムを SIMULA67 にあった「オブジェクト」をメッセージの受け手とすることで実現(オブジェクトにメッセージ送信)するアイデアに基づく「メッセージングのオブジェクト指向」と、 ビアルネ・ストラウストラップ(前後して抽象データ型を発案したリスコフ人、オブジェクトクラスを考えたニガードらSIMULA陣営、Eiffelのメイヤーらも同様の着想を得ている)による、ユーザー定義型(抽象データ型)を SIMULA67 にあった「クラス」という言語機能を使って実現(カプセル化、継承、多態性)するアイデアに基づく「抽

    オブジェクト指向の概念の発明者は誰ですか? - Smalltalkのtは小文字です
    ukstudio
    ukstudio 2007/10/24
  • Smalltalk と Ruby と LISP のシンボル - Smalltalkのtは小文字です

    Smalltalk も Ruby も LISP もシンボルの質は、いずれも“インターンされた文字列”です。インターン(intern)にはよい訳語を思いつかないのですが、簡単には「登録され管理された…」という感じでしょうか。しかし、実装や振る舞いは必ずしもそのとおりにはなっていません。特に文字列だと意識して扱う際には注意が必要でしょう。 注意:ここでの「Smalltalk」とは Squeak の Smalltalk を指します。他の Smalltalk 処理系(特に、デファクト・スタンダードの VisualWorks や ANSI 準拠のお手製 Smalltalk 処理系)では異なる挙動を示すとのご指摘を受けましたので、お詫びして修正、以下の項目に追記をさせていただきます。 Smalltalk のシンボル Smalltalk のシンボルは、“等価なら常に同一で、イミュータブルな文字列”とい

    Smalltalk と Ruby と LISP のシンボル - Smalltalkのtは小文字です
  • リスコフの「抽象データ型」について - Smalltalkのtは小文字です

    「A History of CLU」(PDF) の 2. Data Abstraction からの抜粋。 概要 「抽象データ型」という考え方は、リスコフらにより 1972 年の終わりから 1973 年の夏頃までにまとめられた。 「抽象データ型」は、データとオペレーションのセット。 データの内部情報へのアクセスはこのオペレーションを介してのみ行える。 データの内部情報に関する詳細は隠蔽されている。 成立までの流れ 当時は、プログラミングの効率やコードの質を向上させるための手法に大きな関心が払われていた。 二つの流れが存在。ひとつはダイクストラの構造化プログラミング。もうひとつがモジュール化。 モジュール化については、リスコフも自ら「パーティション」という機構を提唱。 これはダイクストラの「抽象化レベル」という概念に基づいている。 システムは抽象化レベルごとパーティションで表わされ、パーティシ

    リスコフの「抽象データ型」について - Smalltalkのtは小文字です
    ukstudio
    ukstudio 2007/10/05
  • 1