Talk:Text processing/Max licenses in use: Difference between revisions

From Rosetta Code
Content added Content deleted
Line 5: Line 5:


The J solution makes assumptions to allow the interesting code to stand out (rather than the drudgery). This obviously comes at the cost of some robustness (and, incidentally, optimizes for speed).
The J solution makes assumptions to allow the interesting code to stand out (rather than the drudgery). This obviously comes at the cost of some robustness (and, incidentally, optimizes for speed).

* Assumes the file ends in a newline.


* Assumes the format of the file is fixed (that char 8 of each line is 'I' or 'O' as the license is checked in or out, respectively, and that the date is chars 14-32 of each line).
* Assumes the format of the file is fixed (that char 8 of each line is 'I' or 'O' as the license is checked in or out, respectively, and that the date is chars 14-32 of each line).

Revision as of 03:15, 4 October 2008

Assumptions

We might be better able to compare code if we document our assumptions.

J

The J solution makes assumptions to allow the interesting code to stand out (rather than the drudgery). This obviously comes at the cost of some robustness (and, incidentally, optimizes for speed).

  • Assumes the file ends in a newline.
  • Assumes the format of the file is fixed (that char 8 of each line is 'I' or 'O' as the license is checked in or out, respectively, and that the date is chars 14-32 of each line).
  • Does not assume the file exists or, if it exists, that it contains any data (i.e. it may be zero bytes long). For example, if the file is empty, you get this:
Maximum simultaneous license use is 0 at the following times:
Note that I didn't have to do any special checks to get this behavior, it just fell naturally out of the code. (This happens a lot in J.)