[Jprogramming] Seven Segment Display -- shortest solution
Dan Bron
jf at dbron.net
Wed Apr 19 12:59:22 HKT 2006
I got it down to 104 characters on my first pass:
(10{a.),@:,.~(' _|'{~3 i 27 i 2832(i=.#.^:_1)32223677614513270047615810867287021x),./@:{~'0123456789'i.]
Of those, (the first) 13 are used to make the solution strictly compatible with the spec. To wit: they turn J's natural matrix
representation into Python's natural string representation.
Of the remaining 94, 69 are dedicated to the representation and expansion of the lookup table. I took the braindead approach of
storing the table in an extended integer. A smarter representation will provide the most bang for the buck in the next
generation.
One idea I had was to exploit the J environment's new tolerance for Unicode. Unicode can encode a lot of data in a small space,
especially if we're counting characters, not bytes.
Hmm, now that I think about it, maybe I should have stored the data in a special ASCII string. The quote marks themselves would
only cost me 1 character ('cause I had to use a trailing x for the extended integer)....
Of course, we could just look at the (winning) Python entries, and steal their encoding ideas ... :)
-Dan
PS: My solution depends only on the interpreter (v6), not on any names provided by scripts. It could be made 5 characters
shorter immediately if I could depend on the definition of LF .
More information about the Programming
mailing list