Perl で、文字列中の変数をその値に置換する機能が便利そうだったので Smalltalk/Squeak でそれっぽいのができないかと思索。

name age string
name _ 'Squeak'. age _ '10'. string _ 'My name is #name. I am #age years old.'. thisContext tempNames do: [: tempName | string _ string copyReplaceTokens: tempName asSymbol printString with: (thisContext tempAt: (thisContext tempNames indexOf: tempName))]. ^ string => 'My name is Squeak. I am 10 years old.'

#withCRs よろしく #withTempValues とでも名付けようか。

name age string
name _ 'Squeak'. age _ '10'. ^ 'My name is #name. I am #age years old.' withTempValues => 'My name is Squeak. I am 10 years old.'

もっとも、こんなのはすでにありそう…。まあ、コンテキストに期待するってのは、少々“気持ち悪い”ですね。