« 連載: Smalltalk use: better《2》3つの基本構文★ | トップページ | 連載: Smalltalk use: better《4》3つの基本要素:変数★ »

2006年5月10日 (水)

連載: Smalltalk use: better《3》3つの基本要素:リテラル★

キーワード ◆ Alan Kay・Character・Float・LargePositiveInteger・SmallInteger・String・センダー・メッセージ式・リテラル・レシーバー・変数

※ PDF でご覧になるなら ⇒ 「piyo60510.pdf」をダウンロード

------------ 序 ------------

先代と同じ味を作り上げても、誰も認めてはくれない、
先代と違う味を出してはじめて「先代と似てきた」そう言われる。

料理人 徳岡

◆ Alan Kay さんが描いた夢は、四半世紀の時空を越えて、Squeak という形で転生しました。Smalltalk とはひとを違う Squeak の今後の展開が楽しみです。わくわく。

------------ 本文 ------------

◆ Smalltalk のプログラムを構成するのは、次の3つの基本要素です。

  1. リテラル
  2. 変数
  3. メッセージ式

共通するのは「これらを評価すると、オブジェクトが得られる」ということです。

リテラル ◆ よく使われるリテラルを紹介します。

3 class          "SmallInteger"

60510a_1 ◆ すべてのオブジェクトには、それが属するクラスが存在します。メッセージ class を送ると、そのクラスが得られます。メッセージ式 3 class から、整数 3 のクラスは、SmallInteger であることが分ります。

3 sqrt          "1.732050807568877"
3 sqrt class          "Float"

60510b_1 ◆ オブジェクトにメッセージを送ると、オブジェクトが得られます。すると、得られたオブジェクトに、再びメッセージを送ることができます。メッセージ式 3 sqrt を評価すると、3 の平方根 1.732050807568877 が得られます。さらに、メッセージ式 3 sqrt class を評価すると、得られた実数のクラスは、Float であることが分ります。

13 factorial          "6227020800"
13 factorial class          "LargePositiveInteger"

◆ メッセージ式 13 factorial class から、13 の階乗は普通の整数ではなく、不定長の桁数を表現できる整数 LargePositiveInteger であることが分ります。

3 printString          "'3'"
3 printString class          "String"

60510c_1 ◆ メッセージ printString を送ると、その文字列表記が得られます。メッセージ式 3 printString を評価すると、文字列 '3' が得られます。さらに、メッセージ式 3 printString class を評価すると、得られた文字列のクラスは、String であることが分ります。

'ABCDE' at: 3          "$C"
$C class          "Character"

60510d_1 ◆ メッセージ at: を送ると、指定された位置の要素が得られます。文字列 'ABCDE' の先頭から数えて3番目の文字 $C が得られます。また、メッセージ式 $C class を評価すると、得られた文字のクラスは、Character であることが分ります。

【課題】どうすればいい
次の式を評価するとエラーとなります。その理由を説明してください。

'ABCDE' at: 3 class

また、どうすれば、このエラーを回避できますか。正解は、ひとつとは限りません。

【Tips】メッセージによる情報の伝達

60510e◆ オブジェクトがメッセージをやり取りする様子は、手紙や電子メールのやり取りと比較すると分りやすいでしょう。

Smalltalk Best Practice Patterns Book Smalltalk Best Practice Patterns

著者:Kent Beck
販売元:Prentice Hall
Amazon.co.jpで詳細を確認する

ケント・ベックのSmalltalkベストプラクティス・パターン―シンプル・デザインへの宝石集 Book ケント・ベックのSmalltalkベストプラクティス・パターン―シンプル・デザインへの宝石集

著者:ケント ベック
販売元:ピアソンエデュケーション
Amazon.co.jpで詳細を確認


【参考文献】Kent Beck, 1996
Smalltalk Best Practice Patterns, ISBN013476904X

XP の提唱者でもある、Kent Beck さんのルーツは、Smalltalk にあった。イディオムの宝庫です。

==================================
真樹育未 著 ◆ 監修:小泉ひよ子とタマゴ倶楽部

|

« 連載: Smalltalk use: better《2》3つの基本構文★ | トップページ | 連載: Smalltalk use: better《4》3つの基本要素:変数★ »

書籍・雑誌」カテゴリの記事

Jython/Python」カテゴリの記事

OCL/UML」カテゴリの記事

Squeak/Smalltalk」カテゴリの記事

.連載: Smalltalk use: better」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: 連載: Smalltalk use: better《3》3つの基本要素:リテラル★:

« 連載: Smalltalk use: better《2》3つの基本構文★ | トップページ | 連載: Smalltalk use: better《4》3つの基本要素:変数★ »