local fn Quibble( string as CFStringRef ) as CFStringRef CfArrayRef arr = fn StringComponentsSeparatedByString( string, @" " ) CFStringRef rst if ( len(arr) == 0 ) then rst = @"" else rst = fn StringWithFormat( @"%@", fn ArrayLastObject( arr ) ) if ( len(arr) > 1 ) CFArrayRef subArray = fn ArraySubarrayWithRange( arr, fn CFRangeMake( 0, len(arr) - 1 ) ) rst = fn StringWithFormat( @"%@ and %@", fn ArrayComponentsJoinedByString( subArray, @", " ), rst ) end if end fn = fn StringWithFormat( @"{%@}", rst ) print fn Quibble( @"" ) print fn Quibble( @"ABC") print fn Quibble( @"ABC DEF" ) print fn Quibble( @"ABC DEF G H" ) HandleEvents