> Please send me comments, suggestions and ideas. Now, after the contest is over I analysed the outcome of it and have come to the conclusion, that there were two major factors which contributed to squeezing of code:
(1). usage of available variants for coding of the same thing (2). sqeezing the size of used numeric and string literals As (1) leads to less readable cryptic code it makes not much sense from my point of view to dig deeper in that direction. As already mentioned in this thread by Tim Peters ( pointing to http://spoj.sphere.pl/problems/KAMIL/ ) it seems, that Pearl is here the proper language of choice for such kind of problems anyway. Trying to improve on (2) belongs in my eyes much more into the area of problems discussed in comp.compression than to problems belonging into comp.lang.python . So what is my point? Ok, I will mention it at the end of this post. Before that I want to thank the originators of the contest and especially the participants for providing insight into the techniques they have used. I have learned from the contest what lambda expression is good for and how it works where I failed to grasp it from reading tutorials only. I have detected, that it would be a nice thing to have in Python a function able to convert values from binary string to an integer representation as in my eyes both in case of long integer values are more or less the same thing/object. The only difference is probably in the header not in the representation of the actual value in memory - am I right here? Will it make sense to have a string-integer object which value can be used in both contexts as a binary string and a long integer value? Is there in Python any simple way to do the same as the following two following functions I have put together today: def longIntWithBitsOfBinaryString(stringToConvert): intWithBitsOfBinaryString = 0L for singleChar in stringToConvert: intWithBitsOfBinaryString = (intWithBitsOfBinaryString<<8) + ord(singleChar) #:for return intWithBitsOfBinaryString #:def longIntWithBitsOfBinaryString(s) def binaryStringWithBitsOfLongInt(i): listOfCharsOfStringWithThePackedInt = [] exponent = 1 while i > 256**exponent: exponent+=1 for byteNo in range(0,exponent): noOfBitsToShift = byteNo*8 listOfCharsOfStringWithThePackedInt.append(chr(i>>noOfBitsToShift&0xFF)) #:for # reverse (in place) in order to get the highest bits of the integer as leftmost byte listOfCharsOfStringWithThePackedInt.reverse() stringWithThePackedInt = ''.join(listOfCharsOfStringWithThePackedInt) return stringWithThePackedInt #:def binaryStringWithBitsOfLongInt(i) print "longIntWithBitsOfBinaryString('ABBA') = %i"%longIntWithBitsOfBinaryString('ABBA') print "binaryStringWithBitsOfLongInt(longIntWithBitsOfBinaryString('ABBA')) = '%s'"%binaryStringWithBitsOfLongInt(longIntWithBitsOfBinaryString('ABBA')) which gives: longIntWithBitsOfBinaryString('ABBA') = 1094861377 binaryStringWithBitsOfLongInt(longIntWithBitsOfBinaryString('ABBA')) = 'ABBA' ? And now my point I have promised to write about: If squeezing code makes it bad code and compressing literals is more or less compression technique and not Python programming, it is maybe a good idea to try to explore what Python distribution provides as data and modules and rewrite the seven_seg module, but with following limitations: 1. it is not allowed to use any literals in the provided code 2. it is not allowed to misuse the names of the identifiers as a kind of literals providing data 3. it is not allowed to use modules or files which doesn't come with the Python distribution. I have no slightest idea if it is possible to program a seven_seg module under such conditions. It could be a sign, that it would be a very interesting challenge worth to get involved into or a sign I have no slightest idea about Python and programming. What do you all think about it? Claudio -- http://mail.python.org/mailman/listinfo/python-list