Кстати, вспомнился забавный факт. Есть языки, где действительно можно так сделать.
o := Object clone do(
flag := true
string := "foo bar baz" asMutable
)
o do(
if(flag, string replaceSeq("bar", "moo"))
)
o string print
#>>>> foo moo baz
строки -- первоклассные муттабельные объекты + безкостыльное динамическое связывание + все есть выражение (if -- просто функция) -- одним словом Ъ-ООП, и, вуаля