# What does "Modern Prolog" mean?

**URL:** https://swi-prolog.discourse.group/t/what-does-modern-prolog-mean/6647
**Category:** Help!
**Created:** [June 18, 2023, 1:45pm UTC](https://swi-prolog.discourse.group/t/what-does-modern-prolog-mean/6647 "2023-06-18T13:45:48Z")
**Posts on this page:** 3
**Page:** 2

<div class="post-metadata">

### Author: ![DewayneG](https://avatars.discourse-cdn.com/v4/letter/d/838e76/32.png) [@DewayneG](https://swi-prolog.discourse.group/u/DewayneG)
#### Post date: [June 27, 2023, 12:58am UTC](https://swi-prolog.discourse.group/t/what-does-modern-prolog-mean/6647/36 "2023-06-27T00:58:41Z")

</div>

Re assertion/retraction. I use yaml\_read(File,read,D), assert(d(D)) to use/manipulate dictionaries. This is done in a manner similar to how assoc or rbtrees are used. (Yes I know a list or assoc can be asserted directly, but if there are many and they’re manipulated how can you identify which unless by a unique Name). Also note sect. 5.4.5 re possibility of changing dict representation.  
PS I also use fast\_write(Sout,Dict) for longer term dict use 🙂

---

<div class="post-metadata">

### Author: ![DewayneG](https://avatars.discourse-cdn.com/v4/letter/d/838e76/32.png) [@DewayneG](https://swi-prolog.discourse.group/u/DewayneG)
#### Post date: [June 27, 2023, 1:03am UTC](https://swi-prolog.discourse.group/t/what-does-modern-prolog-mean/6647/37 "2023-06-27T01:03:33Z")

</div>

apologies - I failed to scroll down and missed anon95304481’s helpful answer.

---

<div class="post-metadata">

### Author: ![peter.ludemann](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/peter.ludemann/32/48_2.png) [@peter.ludemann](https://swi-prolog.discourse.group/u/peter.ludemann)
#### Post date: [June 27, 2023, 1:46am UTC](https://swi-prolog.discourse.group/t/what-does-modern-prolog-mean/6647/38 "2023-06-27T01:46:51Z")

</div>

> [@anon419083](#):
>
> ```prolog
> ?- employee{name:bob, family_name:worker} =.. X.
> X = [C'dict', employee, bob, name, worker, family_name].
> 
> ```

```prolog
?- dict_pairs(employee{name:bob, family_name:worker}, T, X).
T = employee,
X = [family_name-worker,name-bob].

```

[Previous page](https://swi-prolog.discourse.group/t/what-does-modern-prolog-mean/6647.md?page=1)
