Есть ли в Smalltalk (особенно Squeak / Pharo) какие-то вариативные функции?
Я только что читал о силе разработки собственных управляющих статусов в smalltalk, и хотя я большой поклонник ifTrue: ifFalse: I с трудом придумал хороший способ реализации произвольных операторов if, if else, if else, ..., else, думая, насколько полезными будут функции Variadic для реализации операторов case. Что-то вроде
false class
ifTrue: aBlock (... elseIf: aBoolean then: aSecondBlock ...) else: aLastBlock
vArgList pairsDo: [:x :y| x ifTrue:[^ (y value)] ].
^ aLastBlock