[SML 7604] Re: 第9回Smalltalk勉強会@京都

Takafumi Saikawa tscompor @ gmail.com
2009年 7月 5日 (日) 17:49:38 JST


今日は

From: AOKI Atsushi <atsushi @ cc.kyoto-su.ac.jp>
Subject: [SML 7584] Re: 第9回Smalltalk勉強会@京都
Date: Thu, 02 Jul 2009 15:39:48 +0900
Message-ID: <4A4C5634.8080000 @ cc.kyoto-su.ac.jp>

atsushi> | aValue aBlock |
atsushi> aValue := 2.
atsushi> aBlock :=
atsushi>         [| a b c |
atsushi>         a := b := c := aValue.
atsushi>         (a * b * c) yourself].
atsushi> anInspector := Tools.Trippy.InspectorShell new.
atsushi> ((anInspector class classPool)
atsushi>     at: #EvaluationPaneWasLastShown put: true;
atsushi>     at: #SharedTextHolder) value: 'self value'.
atsushi> anInspector
atsushi>     open;
atsushi>     inspect: aBlock

ここの
a := b := c := aValue.
というような代入が連なる文を初めて見たのですが、意味としては
c := aValue.
b := c.
a := b.
と同じなのですよね?

(特に2項の)メッセージ式についての一貫した左結合性を思い出すと、
aValue =: c =: b =: a.
と書きたくなります。


才川隆文


SML メーリングリストの案内