Atom je [...] stejný, pak je ekvivalentní, nebo není a pak není
V Prologu je to ale stejně, ne?
Jo, je to stejně, a občas to je problém, proto se ptám, jestli to Erlang nemá vyřešené lépe. Zřejmě to je tedy stejně svazující jako v Prologu a člověk musí hledat workaroundy.
To je zajímavý, měl bys nějaký konkrétní příklad (ne nutně kód)? Já si neuvědomuju, že bych na něco narazil (ani v Prologu, ani v Erlangu).
Jo, měl. Parsing do FOL například. Když se použije Early nebo něco takového, tak chci pro "Pepe eats pâté" dostat něco jako "eats(x,y) & Pepe(x) & pâté(y)", přičemž z lexikonu vyleze Pepe(u) a pâté(v) a během parsingu zjistím, že x=u a y=v. Pro efektivní implementaci by se hodila hashmapa nad termy, pro které můžu určit ekvivalenci. Kdyby to měl nějaký jazyk zabudované, celkem by to usnadnilo implementaci mnohých algoritmů, protože efektivní algoritmus se pro to píše blbě. Bohužel, "if you want something done right, you have to do it yourself."