This allows messages such as "cddr" and "cdar" to be sent to lists. Because these messages are postfix operators, the car/cdr operations are applied as specified from left to right. Thus, ('(1 2 3) cddar) is equivalent to ((('(1 2 3) cdr) cdr) car)
Here are tests for the previous change set. Tested methods: (NuEnumerable each:) (NuEnumerable eachWithIndex:) (NSArray eachInReverse:) (NSDictionary each:) (NSString each:) (NuCell count) (NSNull count)
These three pairs are just different names for the same thing. If car and cdr don't work, nutest probably won't work either.
When an array or list is indexed using the handleUnknownMessage:withContext: shortcut, for example: (a 1) negative values can now be used as indices. A negative value will be treated as an offset from the end of the list or array, with the last list or array element corresponding to -1.
Now you can get an element of a list by sending the list an integer corresponding to the desired element. For example: ('(1 2 3) 1) returns 2.
It seems that something about bridging BOOL is not right.
1. Disable benign message about unused objc type modifiers. 2. Added "isEqual:" for NuCell; this allows lists to be correctly tested for equality. 3. Added "rectValue", "sizeValue", "pointValue", and "rangeValue" conversion methods to NuCell. Now lists can be automatically converted to structs when they are passed through the NSObject "set:" method. 4. Added two new test files to verify items 2 and 3.