# Falscher Code Vers. prolog 7.6.4?

**URL:** <https://swi-prolog.discourse.group/t/falscher-code-vers-prolog-7-6-4/5032>\
**Category:** General\
**Created:** [February 18, 2022, 2:59pm UTC](https://swi-prolog.discourse.group/t/falscher-code-vers-prolog-7-6-4/5032 "2022-02-18T14:59:32Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![sni-prolog](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/sni-prolog/32/4231_2.png) [@sni-prolog](https://swi-prolog.discourse.group/u/sni-prolog)\
**Post date:** [February 18, 2022, 2:59pm UTC](https://swi-prolog.discourse.group/t/falscher-code-vers-prolog-7-6-4/5032/1 "2022-02-18T14:59:32Z")

</div>

Hallo, dieser Code lässt sich nicht übersetzen.  
Habe ich irgend etwas vergesse anzugeben: Bibliotheken, . . .  
[https://www.swi-prolog.org/pldoc/man?section=quickstart](https://www.swi-prolog.org/pldoc/man?section=quickstart)  
?- likes(sam, X).  
X = dahl ;  
X = tandoori ;  
…  
X = chips.  
Es passiert folgendes:  
[user].  
|: likes(sam,X).

Warning: user://1:8:  
Singleton variables:   
|: X = dahl;  
|: X = tandoori;  
|: X = chips.

ERROR: user://1:12:  
No permission to modify static procedure `(;)/2’  
Defined at /usr/lib/swi-prolog/boot/init.pl:209  
|: ^D% user://1 compiled 0.01 sec, 1 clauses  
true.  
Auch wenn ich diesen File standardmäßig übersetze, komme ich zum Fehler.  
Was Tun?  
Gruß edsw

---

<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:** [February 18, 2022, 4:19pm UTC](https://swi-prolog.discourse.group/t/falscher-code-vers-prolog-7-6-4/5032/2 "2022-02-18T16:19:59Z")

</div>

Using [Google translate](https://translate.google.com/)

Hello, this code cannot be translated.  
Did I forget to include something: Libraries, . . .

[SWI-Prolog -- Manual](https://www.swi-prolog.org/pldoc/man?section=quickstart)

```prolog
?- likes(sam, X).
X = dall ;
X = tandoori ;
...
X = chips.

```

The following happens:

```prolog
[user].
|: likes(sam,X).

Warning: user://1:8:
Singleton variables: [X]
|: X = dall;
|: X = tandoori;
|: X = chips.

ERROR: user://1:12:
No permission to modify static procedure `(;)/2'
Defined at /usr/lib/swi-prolog/boot/init.pl:209
|: ^D% user://1 compiled 0.01 sec, 1 clauses
true.

```

Even if I translate this file by default, I get the error.  
What to do?

Greeting edsw

---

<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:** [February 18, 2022, 4:22pm UTC](https://swi-prolog.discourse.group/t/falscher-code-vers-prolog-7-6-4/5032/3 "2022-02-18T16:22:46Z")

</div>

```prolog
?- likes(sam,X).
ERROR: Unknown procedure: likes/2 (DWIM could not correct goal)

?- [user].
| likes(sam,dall).
| likes(sam,tandoori).
| likes(sam,chips).
| Ctrl-D entered
% user://1 compiled 0.00 sec, 3 clauses
true.

?- likes(sam,X).
X = dall ;
X = tandoori ;
X = chips.

```

Note:

```prolog
| likes(sam,dall).

```

ends with a period `.` and not a `;`.

---

<div class="post-metadata">

**Author:** ![sni-prolog](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/sni-prolog/32/4231_2.png) [@sni-prolog](https://swi-prolog.discourse.group/u/sni-prolog)\
**Post date:** [February 18, 2022, 5:48pm UTC](https://swi-prolog.discourse.group/t/falscher-code-vers-prolog-7-6-4/5032/4 "2022-02-18T17:48:01Z")

</div>

Dieser Code läuft nur wenn “likes(sam,dall).” steht.  
X = dall;  
X = chips.  
läuft so nicht.  
Dieser liegt hier vor  
[https://www.swi-prolog.org/pldoc/man?section=quickstart](https://www.swi-prolog.org/pldoc/man?section=quickstart)  
Gruß edsw

---

<div class="post-metadata">

**Author:** ![hartmut27](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/hartmut27/32/4226_2.png) [@hartmut27](https://swi-prolog.discourse.group/u/hartmut27)\
**Post date:** [February 18, 2022, 7:48pm UTC](https://swi-prolog.discourse.group/t/falscher-code-vers-prolog-7-6-4/5032/5 "2022-02-18T19:48:48Z")

</div>

before executing  
`?- likes(sam, X).`  
you should end the pseudo file user entry command `[user]` by pressing Ctrl-D.

---

<div class="post-metadata">

**Author:** ![sni-prolog](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/sni-prolog/32/4231_2.png) [@sni-prolog](https://swi-prolog.discourse.group/u/sni-prolog)\
**Post date:** [February 19, 2022, 4:45pm UTC](https://swi-prolog.discourse.group/t/falscher-code-vers-prolog-7-6-4/5032/6 "2022-02-19T16:45:17Z")

</div>

Hello,  
I produce a file called “likes”. The contents : see appendix.  
The compilation of this files “likes” goes wrong, both times.  
regards  
Dieter

 ![likes.1](https://global.discourse-cdn.com/free1/uploads/swiprolog/original/2X/2/21e276b181af04d60c0a0070ab463be9d3134753.png)

---

<div class="post-metadata">

**Author:** ![sni-prolog](https://yyz2.discourse-cdn.com/free1/user_avatar/swi-prolog.discourse.group/sni-prolog/32/4231_2.png) [@sni-prolog](https://swi-prolog.discourse.group/u/sni-prolog)\
**Post date:** [February 19, 2022, 4:46pm UTC](https://swi-prolog.discourse.group/t/falscher-code-vers-prolog-7-6-4/5032/7 "2022-02-19T16:46:43Z")

</div>

![likes.2](https://global.discourse-cdn.com/free1/uploads/swiprolog/original/2X/b/bf3a22bd25a02e6e677b416e33c06fa9881c955e.png)

---

<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:** [February 19, 2022, 5:07pm UTC](https://swi-prolog.discourse.group/t/falscher-code-vers-prolog-7-6-4/5032/8 "2022-02-19T17:07:29Z")

</div>

Create Prolog source file.

Note: In the next step you can use another directory that your login user has write access, just be consistent.

Note: The file will be a Prolog module. It is really better to start off using Prolog [modules](https://www.swi-prolog.org/pldoc/man?section=modules) because if you eventually do production code you will need modules.

Directory: `C:/Users/Groot`  
File: `likes.pl`

```prolog
:- module(example,
    [
      likes/2
    ]).

likes(sam,dahl).
likes(sam,tandoori).
likes(sam,chips).

```

Start SWI-Prolog

```prolog
Welcome to SWI-Prolog (threaded, 64 bits, version 8.5.5)

?- working_directory(_,'C:/Users/Groot').
true.

?- [likes].
true.

?- likes(sam,X).
X = dahl ;
X = tandoori ;
X = chips.

```
