libera/#lisp - IRC Chatlog
Search
22:20:31
edgar-rft
The question "howto print #n# for circular structure, but not shared structure" looks to me like a totally different problem: is there any circular structure does *not* contain shared structure? if not then the #n# case never happens.
23:09:22
Alfr
edgar-rft, I thought it's about printing (#1=(A . #1#) #1#) as (#1=(A . #1#) #2=(A . #2#)) or similar? I.e. the list elements are circular---in fact the same, but as list itself is not part of that circular structure, these cycles are to be printed independently. (At the least, that is what I make of qhong's question.)
23:42:31
edgar-rft
Alfr: that are both examples for circular lists *with* shared structure that qhong wants *not* to be printed in #n# syntax. IMO the main problem is that qhong's question is self-contradicting.
23:44:56
Alfr
The list itself isn't circular, that's the very thing I've been trying to illustrate with the example above.
6:03:30
qhong
It's for usability reason. In my particular case, for printing the environment of a meta-circular evaluator. *PRINT-CIRCLE* is necessary otherwise recursive procedure prints infinitely, but also less than satisfactory because #n# is hard to read where they are not strictly needed for termination