diff --git a/livesort_hssp/livesort.lissp b/livesort_hssp/livesort.lissp index 59036ce..1fadc22 100644 --- a/livesort_hssp/livesort.lissp +++ b/livesort_hssp/livesort.lissp @@ -1,6 +1,14 @@ (hissp.basic.._macro_.prelude) - +;; Lissp's class definition syntax is somewhat unlike Python's class +;; definition syntax even though it expresses the same model. Python +;; will nearly never imply a dict from a sequence of uncoupled pairs +;; but this is a common way to express an association list in lisps. +;; It's interesting that `deftype` is a macro around a `type` call in +;; its rarely used form with three arguments. Quoting the +;; member/method (it does not distinguist) and class names for you in +;; the macro makes it read a little bit more like Python than it would +;; if you had to quote them. (deftype Livesort () __init__ (lambda (self diff --git a/livesort_hy/livesort.hy b/livesort_hy/livesort.hy index b6d41c4..7fa8a97 100644 --- a/livesort_hy/livesort.hy +++ b/livesort_hy/livesort.hy @@ -1,5 +1,9 @@ (import [bisect [bisect]]) +;; Hy class definitions look a lot like Python class definitions. +;; Much moreso now. If one is not careful, it's easy to install an +;; older version of Hy and the class definition syntax has changed +;; over time. Hopefully this 1.0a syntax is now stable. (defclass Livesort [] (defn __init__ [self next-line ; iterable function yielding lines of text @@ -48,8 +52,7 @@ will update the display." (.sortline self line) (.print self (.display self))))) -(defmain - () +(defmain [] (import sys os) (.livesort (Livesort sys.stdin