From 4f00667d26958a0a3145c32b2fce1e6336d78669 Mon Sep 17 00:00:00 2001 From: Mike Pelletier Date: Wed, 28 Apr 2021 13:43:08 -0400 Subject: [PATCH] Comments comparing definitions. --- livesort_hssp/livesort.lissp | 10 +++++++++- livesort_hy/livesort.hy | 7 +++++-- 2 files changed, 14 insertions(+), 3 deletions(-) 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