diff --git a/README.org b/README.org index d2a75fe..8faeb70 100644 --- a/README.org +++ b/README.org @@ -4,8 +4,6 @@ #+EMAIL: (concat "livesort" at-sign "mkp.ca") #+KEYWORDS: hissp, lissp, hy -* Livesort: Hy vs Lissp - This is a small application I am developing in parallel in both Hy and Lissp for the purpose of exploring and comparing the languages. I wrote it first in Lissp and performed a direct transliteration to Hy, learning both languages as I went. So far, my observations are superficial and the application is (not even) a single iteration deep. Hissp attempts to provide a pure, minimal, Lisp-like environment. It's certainly not bashful about the fact that it is built on top of Python -- it compiles directly to Python expressions -- but it's not attempting to fully expose Python-the-language. It is just trying to be the best (ie most minimal) Hissp it can be and fully exposing Python-the-language would compromise that. It would be too hairy and baroque. Hissp does fully expose Python's model to Lissp and allows complete interoperability, and you can inject Python whenever you want (which I have attempted to avoid). @@ -18,39 +16,39 @@ Hissp doesn't really feel like something a sensible person would write an applic The install story was the same for both. Pretty much ideal once I realized I needed to be on Python 3.8. PIP is pretty amazing. -** TODOs +* TODOs I've really enjoyed working with both languages and I hope to develop the application further. Also, I want the app. -*** Hebigo +** Hebigo Hissp can also be expressed as "readerless" tuples-of-tuples-and-strings, and something called Hebigo. I haven't looked into it yet. Consider porting the app a second time, which should be a quite mechanical process, but maybe the macros included with Hebigo will allow the application to be expressed differently and demonstrate something. -*** Symbolic cursor control codes +** Symbolic cursor control codes The literal cursor control codes embedded everywhere are awful. -*** Interactive +** Interactive When ~sys.stdin~ is not ~/dev/tty~, re-open the tty and use it for interactive control. Give the user controls similar to ~less~ but with live sorted contents. Don't exit automatically. -*** Keys +** Keys Multiple keys may be specified in order of decreasing significance. There is always a final implicit key which is the raw value of the line itself. -**** ~--key=mtime~, ~--key=ctime~ +*** ~--key=mtime~, ~--key=ctime~ Treat the input lines as paths and sort based on the corresponding mtime and/or ctime. -**** ~--key=numeric~ +*** ~--key=numeric~ Treat the input as a string representation of a numeric value (*a la* ~sort -n~). -**** ~--key=shuffle~ +*** ~--key=shuffle~ Insert a randomized key. -**** ~--reverse~ +*** ~--reverse~ Invert the meaning of the next ~--key~. There is always a final implicit key which is the raw value of the line itself. -**** ~--slice=[start][:end]~ +*** ~--slice=[start][:end]~ Consider only a substring for the purpose of the next ~--key~. If used on the implicit key, slice the output. There should be a regexp version of this, too. -**** ~--batch~ +*** ~--batch~ Don't run interactively. Don't livesort. Just process all the input, and then output the entire sorted output.