Hacker News new | past | comments | ask | show | jobs | submit login

It's a thread running through the article that the big thing about merge is that it is hierarchical and not sequential. e.g., see the following passage from the article:

>> [Merge] applies to discrete units of language (words or their parts). It combines these, not sequentially, but hierarchically.

Or the paragraph at the start where human language abilities are contrasted to bonobos' and chimpanzees' and deep learning models' sequential processing; etc.

My knowledge of Lisp is rusty, but as far as I remember it cons is a list operator that joins the head to the tail of a list (like the "|" in Prolog). So it imposes an order - on a sequence. Apologies if I misremember this.




Ah I see what you mean. I think the author of that article is making the point that Merge is about creating trees, not appending words together in a more traditional sense. But S-expressions can be used to express trees, so when you're operating on trees notated as S-expressions, adding a parent node to two expressions looks like you're concatenating them.

The author is just trying to say that Merge is doing the same thing we're talking about cons doing to S-expressions to a tree and noting that it creates hierarchy. Eg a new Merge says I've created a new top-level node that is a parent for the two inputs. A second Merge says I've made the first input c-command both inputs of my first Merge and created a new top-level node.


But, if I don't misremember this also, cons creates an ordered pair, no?


As far as I understand it cons just creates pairs (which can be interpreted as lists). It doesn't impose order.


Unordered would be if cons(a, b) == cons(b, a) which is not the case




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: