[plt-scheme] SIW: Capture-avoiding paste
On Jan 23, Neil Toronto wrote:
> Strange Idea of the Week
>
> Sensei and I were chatting a couple of days ago, and we thought it
> would be pretty cool if, when you pasted things in the DrScheme
> editor, it did some moral equivalent to capture-avoiding
> substitution. This would require at minimum (I think) some kind of
> incremental Check Syntax that was somewhat robust to
> bad/incomplete/partial syntax. It would necessarily be a
> conservative approximation. Without expanding macros, it would be
> impossible to tell what the binding forms are, and macros can't be
> expanded on illegal syntax.
>
> I haven't got a clue why it would be cool, apart from being able to
> reason about your own code by doing copy-and-paste, and be sure that
> you haven't messed something up. Maybe the algebraic stepper in the
> module language is what I really want most of the time, but I still
> think this would be cool.
This sounds somewhat related to the concept of concrete abstractions,
where you use a values from a specific domain as the variables. If
you take this to an extreme, you can imagine a system where typing `x'
twice gives you two different identifiers, and copy+paste is the only
way to get bindings... But it's a question how interaction will look
in such a system -- are you allowed to copy an expression from the
body of a function but not the binders? (The bottom line, IMO, is
that flat text is ultimately more convenient to manage, for people who
can deal with such a level of abstraction. (A category that I'd like
to think as including all programmers.))
--
((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay:
http://barzilay.org/ Maze is Life!