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

I'm not sure what you mean about Merge being non-sequential. All Merge does is take two elements α and β, then return a binary branching structure with α as the head, like so:

{α, β}

Both α and β can be either some atomic unit, eg a word or a morpheme, or the previous output of Merge (a tree).

This is their first example as rendered as cons:

(cons I (cons drink wine))

As merge:

{ I, { drink, wine } }

As a tree:

Edit: I can't get the tree to look even remotely correct in HN formatting, but you get the idea. It's in the article.




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: