# Teaching prolog - after SLD resolution, what else?

**URL:** <https://swi-prolog.discourse.group/t/teaching-prolog-after-sld-resolution-what-else/2091>\
**Category:** Help!\
**Created:** [April 2, 2020, 10:42am UTC](https://swi-prolog.discourse.group/t/teaching-prolog-after-sld-resolution-what-else/2091 "2020-04-02T10:42:19Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![EricGT](https://avatars.discourse-cdn.com/v4/letter/e/f1d935/32.png) [@EricGT](https://swi-prolog.discourse.group/u/EricGT)\
**Post date:** [April 2, 2020, 11:05am UTC](https://swi-prolog.discourse.group/t/teaching-prolog-after-sld-resolution-what-else/2091/2 "2020-04-02T11:05:35Z")

</div>

- [Prolog Unit Tests](https://www.swi-prolog.org/pldoc/doc_for?object=section(%27packages/plunit.html%27))
- DCGs for recognition, parsing and generating
- transitive closure
- [File system interaction predicates](https://www.swi-prolog.org/pldoc/man?section=files) and [setup\_call\_cleanup/3](https://www.swi-prolog.org/pldoc/doc_for?object=setup_call_cleanup/3)
- The difference between single quote, double quote and backtick. See: [What type is a single quoted string?](https://swi-prolog.discourse.group/t/what-type-is-a-single-quoted-string/1102)
- How to use SWISH
- Some items from the [Nice to know](https://swi-prolog.discourse.group/c/nice-to-know/17) category might be of value
- Some items from the [Wiki](https://swi-prolog.discourse.group/c/wiki/12) category might be of value
- [Flags](https://www.swi-prolog.org/pldoc/man?section=flags)
- That Edinburgh-style I/O is no longer popular.
- That [read\_term/2](https://www.swi-prolog.org/pldoc/doc_for?object=read_term/2) is not the reading of console input that they might think. I prefer [read\_string/5](https://www.swi-prolog.org/pldoc/man?predicate=read_string/5)
- How to work with facts vs how to work with items in a list, e.g. [Finding all Solutions to a Goal](https://www.swi-prolog.org/pldoc/man?section=allsolutions)
- Failure driven loop
- double negation
- guard statements
- [write\_canonical/2](https://www.swi-prolog.org/pldoc/man?predicate=write_canonical/2)
- How to generate holes for values then fill the holes, e.g. generate a list of holes using [length/2](https://www.swi-prolog.org/pldoc/man?predicate=length/2) then fill the holes. As you know this is useful with iterative deepening, but many beginners don’t know the concept can be expanded beyond that, e.g. trees.
- Understanding _pure_ and _defaulty_ and other terminology that is more commonly only known with logic programming.

---

_[View the full topic](https://swi-prolog.discourse.group/t/teaching-prolog-after-sld-resolution-what-else/2091)._
