In preparation for a meeting where we will be discussing Guy’s suggestion (see also a paper by Aguila-Multner and Crysmann), I am trying to understand the problem with diff-list appends. I have never dealt with them directly, and all the information that I can find on the wiki and in the slides and in the paper is too dense for me. Apparently I lack some crucial background.
I would like to summarize my questions here. I don’t know if anything will/should be answered before the meeting; perhaps I will myself fill in some answers later. If, on the other hand, anyone would like to explain anything, that’ll be greatly appreciated.
- Does the definition of the diff-list come from PROLOG? If not, where from? Is it a TDL-specific definition?
- Does the definition of append come from PROLOG? If not, is it a TDL-specific definition? In the other thread, we said it was from Lisp, but now I am no longer 100% sure.
- In the Grammar Matrix, list := avm, with no additional constraints. What is the purpose of that?
- Can someone share a (broken) grammar illustrating a problem like this? Or like this?
- If you read Aguila-Multner & Crysmanns paper, do you understand the problem they are exemplifying in (25)?
In particular, why is 25-b an empty list, necessarily (as it does not say anything at all about what l is?) I suppose this is because in a diff-list by the PROLOG definition, LAST must be a free variable, but I still don’t really understand it at this point.
- In the GM’s dl-append example, what happens to “between”? To me it looks like it is deleted but surely this can’t be.
dl-append := avm & [APPARG1 [LIST #first, LAST #between], APPARG2 [LIST #between, LAST #last], RESULT [LIST #first, LAST #last]].
This is for a start :). Again, I will try to address as much as I can myself eventually, but if anyone feels like helping me out, thanks in advance :).