11:10:02pjbThere were similar tools but for Lisp Machine.
11:11:48pjbFor lisp, I've been hacking Q&D thingies, generating class trees in ascii-art. cf. eg. https://gitlab.com/patchwork/patchwork/tree/master/doc
11:19:33pjbIIRC, there's a MCCLIM app to draw and manipulate graphs of objects. I don't remember the references, perhaps it was just a demo. If you find the sources, it could be used as a basis. Otherwise, MCLIM could be a good basis to do it.
19:58:33Inlinepjb: i don't get how paips cmacsyma is not pattern matching when it uses patterns......
21:18:10equwalSo I found a line like this: `(defun add10 (#:m) (+ #:m 10)) at https://github.com/fukamachi/rove and I am curious what the down side of doing it this way is. Why don't we normally do GENSYMS like this?
21:23:21equwalIt is read into his test framework. I've never seen #:var used outside of a package definition, but I know it is meant to not INTERN the VAR.
21:23:38Xofbut if you don't intern it once, you don't intern it twice
21:23:56Xofso you have two different names, not the same (uninterned) name twice
21:23:57pfdietzRight. So those two #:m will create two different uninterned symbols, each with the symbol-name "M".
21:24:43equwalIt makes sense but I don't understand why that belongs in his README.
21:25:41pfdietzAh, looking at that: the expansion is being printed with *print-circle* = nil. If you set that variable, it will detect the sharing and print appropriately.
21:26:04pfdietzSo don't take that output literally as something readable.
21:27:53equwalMaybe he is trying to show that the form isn't evaluated?
21:28:33pfdietzThe reason names like M are not used is to avoid possible capture. Suppose N was an expression that used a free variable M?
21:29:41pfdietzThat EXPANDS function he wrote may being played a bit fast and lose? Maybe when it compared uninterned symbols, it just looks at their names?