Hacker News new | ask | show | jobs
by Jtsummers 3598 days ago
1) Cool.

2) This isn't, strictly, about processing text data but about an approach to development that Racket makes easy.

Specifically:

  Prototype in a REPL or similar
  Easily integrate unit tests alongside the relevant
    units.
  Convert it to a statically typed implementation:
    Remove some need for run-time checks
    Depending on programming ethos has significant value
3) If you really want to do text processing, let's go with perl:

  print sort map{sub{map{push@_,shift;"@_\n"}@_}->(split)}<>
From: http://www.perlmonks.org/?node_id=62671

4) Things missing from yours and the perl one:

  Usage notes
  Command line flags/options
  Tests
  Static typing (maybe of value for small programs like
    this, but useful in larger programs [EDIT:0])
The first three are trivially added to the other two programs (though the perl one will need some reformatting). But the fourth is impossible. Again, for this scope of project (a demonstration, mind you) the tests and static typing aren't as essential. But if you want this code to live on, and potentially become part of a library of more utilities, they're very helpful.

[0] and projects that depend on this is a library call so they know the types of the arguments and returns.