Not satisfying the equality, but you can use��polymorphism.
Block >> , aBlock
�� �� ^ BlockCompositor andAll: OrderedCollection with: self with: aBlockBlockCompositor >> #, aBlock
�� �� conditions add: aBlock.
BlockCompositor >> value: anObject
�� �� ^ conditions allSatisfy: [:e | e value: anObject ]I don't really like the name BlockCompositor, but can't think of a better name at the moment.
You could also implement logic for #or: using #+ and: #anySatisfy: for example, but need to safeguard against mixing both conditions.On Mon, 14 Mar 2022 at 22:29, Hern��n Morales Durand <hernan.morales@gmail.com> wrote:I think I saw a coding pattern a while ago that allows you to do the following:
cond1 , cond2 , cond3 , cond4
And providing a kind of folding selector condition #and: you would get:
[ cond1 and: [ cond2 and: [ cond3 and: [ cond4 ] ] ] ].for example:conditions := [ : each | each firstName = 'Boca' ] ,[ : each | each lastName = 'Baret' ] ,
[ : each | each fullName = 'Virgasia' ].such that the following assert is met:self assert: conditions equals: [ : each | each firstName = 'Boca' and: [ each lastName = 'Baret' and: [ each fullName = 'Virgasia' ] ] ].Any ideas or pointers?Cheers,Hern��n