Thanks
all.
This code seems to do the job
santaFloorOnBasement
������ "calculates which step take Santa to the basement"
�������� | index|
�������� index := 1.��
�������� [floor ~= -1 ] whileTrue:��
�������������� [ floor := ((input at: index) = '(' )
������������������������������ ifTrue: [ floor + 1 ]
������������������������������ ifFalse: [ floor - 1 ].
���������������� index := index + 1 ].
������������������
������ ^ index -1
You can also think of it from the perspective of data
processing and not instruction coding (and mangling of
indexes).
stepChanges := input collect: [ :c |
floor := floor
+ (c = '(' ifTrue: [ 1 ] ifFalse: [ -1 ]).
floor
].
stepChanges detectIndex: [ :each | each = -1 ]
ifNone: [ 'invalid input yo' ].
Peter