<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.visual-prolog.com/index.php?action=history&amp;feed=atom&amp;title=Lessons%2FHello_World%21</id>
	<title>Lessons/Hello World! - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.visual-prolog.com/index.php?action=history&amp;feed=atom&amp;title=Lessons%2FHello_World%21"/>
	<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Lessons/Hello_World!&amp;action=history"/>
	<updated>2026-04-12T01:36:18Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Lessons/Hello_World!&amp;diff=4962&amp;oldid=prev</id>
		<title>Adam Rose: a few spelling mistakes</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Lessons/Hello_World!&amp;diff=4962&amp;oldid=prev"/>
		<updated>2024-10-11T07:37:33Z</updated>

		<summary type="html">&lt;p&gt;a few spelling mistakes&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 09:37, 11 October 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l15&quot;&gt;Line 15:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The &amp;#039;&amp;#039;&amp;#039;main.pro&amp;#039;&amp;#039;&amp;#039; file contains other stuff, which we will currently disregard, and focus solely on the &amp;lt;vp&amp;gt;run clauses&amp;lt;/vp&amp;gt; you just wrote.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The &amp;#039;&amp;#039;&amp;#039;main.pro&amp;#039;&amp;#039;&amp;#039; file contains other stuff, which we will currently disregard, and focus solely on the &amp;lt;vp&amp;gt;run clauses&amp;lt;/vp&amp;gt; you just wrote.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;First we have the keyword &amp;lt;vp&amp;gt;clauses&amp;lt;/vp&amp;gt;, which &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;simly &lt;/del&gt;indicates that what comes after are &amp;#039;&amp;#039;&amp;#039;clauses&amp;#039;&amp;#039;&amp;#039;.  Clauses is where the actual running code is written.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;First we have the keyword &amp;lt;vp&amp;gt;clauses&amp;lt;/vp&amp;gt;, which &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;simply &lt;/ins&gt;indicates that what comes after are &amp;#039;&amp;#039;&amp;#039;clauses&amp;#039;&amp;#039;&amp;#039;.  Clauses is where the actual running code is written.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In this text I will use words like &amp;quot;clause&amp;quot; and &amp;quot;predicate&amp;quot;, which all have their origin in formal logic, but for the moment we will simply treat them as the names that happens to be chosen for things in a Prolog program.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In this text I will use words like &amp;quot;clause&amp;quot; and &amp;quot;predicate&amp;quot;, which all have their origin in formal logic, but for the moment we will simply treat them as the names that happens to be chosen for things in a Prolog program.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l66&quot;&gt;Line 66:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 66:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;vp&amp;gt;Name&amp;lt;/vp&amp;gt; acts as a formal parameter representing the actual argument used in the call to &amp;lt;vp&amp;gt;advancedHello&amp;lt;/vp&amp;gt;.  In this clause we call &amp;lt;vp&amp;gt;stdio::writef&amp;lt;/vp&amp;gt; which is a more advanced &amp;quot;writer&amp;quot; predicate.  The first argument to &amp;lt;vp&amp;gt;writef&amp;lt;/vp&amp;gt; is a format string, which contains a %-character, what happens when &amp;lt;vp&amp;gt;writef&amp;lt;/vp&amp;gt; is called is that the actual value of &amp;lt;vp&amp;gt;Name&amp;lt;/vp&amp;gt; is substituted into the format string in the place where the %-character is and then the resulting string is written to the standard output.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;vp&amp;gt;Name&amp;lt;/vp&amp;gt; acts as a formal parameter representing the actual argument used in the call to &amp;lt;vp&amp;gt;advancedHello&amp;lt;/vp&amp;gt;.  In this clause we call &amp;lt;vp&amp;gt;stdio::writef&amp;lt;/vp&amp;gt; which is a more advanced &amp;quot;writer&amp;quot; predicate.  The first argument to &amp;lt;vp&amp;gt;writef&amp;lt;/vp&amp;gt; is a format string, which contains a %-character, what happens when &amp;lt;vp&amp;gt;writef&amp;lt;/vp&amp;gt; is called is that the actual value of &amp;lt;vp&amp;gt;Name&amp;lt;/vp&amp;gt; is substituted into the format string in the place where the %-character is and then the resulting string is written to the standard output.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This time we also have a &amp;lt;vp&amp;gt;class predicates&amp;lt;/vp&amp;gt; section containing a declaration of the &amp;lt;vp&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;advacedHello&lt;/del&gt;&amp;lt;/vp&amp;gt; predicate.  This &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;perticular &lt;/del&gt;declaration declares &amp;lt;vp&amp;gt;advancedHello&amp;lt;/vp&amp;gt; as a class predicate which takes one argument which must be a string.   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This time we also have a &amp;lt;vp&amp;gt;class predicates&amp;lt;/vp&amp;gt; section containing a declaration of the &amp;lt;vp&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;advancedHello&lt;/ins&gt;&amp;lt;/vp&amp;gt; predicate.  This &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;particular &lt;/ins&gt;declaration declares &amp;lt;vp&amp;gt;advancedHello&amp;lt;/vp&amp;gt; as a class predicate which takes one argument which must be a string.   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In the predicate declaration the argument also have the name &amp;lt;vp&amp;gt;Name&amp;lt;/vp&amp;gt; but in the declaration the name is mainly intended for documentation purposes.  The variable name in the declaration and in the clauses can be different, or you can remove it completely from the declaration.  I recommend that you always have variable names here and that you use variable names that will make it clearer for the user of the predicate what the arguments represents.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In the predicate declaration the argument also have the name &amp;lt;vp&amp;gt;Name&amp;lt;/vp&amp;gt; but in the declaration the name is mainly intended for documentation purposes.  The variable name in the declaration and in the clauses can be different, or you can remove it completely from the declaration.  I recommend that you always have variable names here and that you use variable names that will make it clearer for the user of the predicate what the arguments represents.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;What it means to be a &amp;#039;&amp;#039;class&amp;#039;&amp;#039; predicate and what else a predicate can be is discussed elsewhere/later.  But before we leave the subject try this little &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;experiement&lt;/del&gt;:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;What it means to be a &amp;#039;&amp;#039;class&amp;#039;&amp;#039; predicate and what else a predicate can be is discussed elsewhere/later.  But before we leave the subject try this little &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;experiment&lt;/ins&gt;:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Lessons/Exercise|Remove the word &amp;lt;vp&amp;gt;class&amp;lt;/vp&amp;gt; from &amp;lt;vp&amp;gt;class predicates&amp;lt;/vp&amp;gt; in the declaration of advancedHello. And then build the project.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Lessons/Exercise|Remove the word &amp;lt;vp&amp;gt;class&amp;lt;/vp&amp;gt; from &amp;lt;vp&amp;gt;class predicates&amp;lt;/vp&amp;gt; in the declaration of advancedHello. And then build the project.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Adam Rose</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Lessons/Hello_World!&amp;diff=4961&amp;oldid=prev</id>
		<title>Adam Rose: Fixed bold formatting</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Lessons/Hello_World!&amp;diff=4961&amp;oldid=prev"/>
		<updated>2024-10-10T14:06:12Z</updated>

		<summary type="html">&lt;p&gt;Fixed bold formatting&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:06, 10 October 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l90&quot;&gt;Line 90:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 90:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Run the project in a window.}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Run the project in a window.}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The clause should be understandable, I just want to highlight that we have used &amp;#039;&amp;#039;&amp;#039;comma&amp;#039;&amp;#039;&amp;#039; to separate the two invocations of &amp;lt;vp&amp;gt;advancedHello&amp;lt;/vp&amp;gt;: &amp;#039;&amp;#039;&amp;#039;comma&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;quot; &lt;/del&gt;to separate, &amp;#039;&amp;#039;&amp;#039;period&amp;#039;&amp;#039;&amp;#039; to terminate. I will give a little prediction:  Later when you are familiar with Visual Prolog you will from time to time make syntax errors and (the prediction) 9 out of 10 times the syntax error will concern &amp;#039;&amp;#039;&amp;#039;comma&amp;#039;&amp;#039;&amp;#039; and/or &amp;#039;&amp;#039;&amp;#039;period&amp;#039;&amp;#039;&amp;#039;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The clause should be understandable, I just want to highlight that we have used &amp;#039;&amp;#039;&amp;#039;comma&amp;#039;&amp;#039;&amp;#039; to separate the two invocations of &amp;lt;vp&amp;gt;advancedHello&amp;lt;/vp&amp;gt;: &amp;#039;&amp;#039;&amp;#039;comma&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;#039;&amp;#039;&amp;#039; &lt;/ins&gt;to separate, &amp;#039;&amp;#039;&amp;#039;period&amp;#039;&amp;#039;&amp;#039; to terminate. I will give a little prediction:  Later when you are familiar with Visual Prolog you will from time to time make syntax errors and (the prediction) 9 out of 10 times the syntax error will concern &amp;#039;&amp;#039;&amp;#039;comma&amp;#039;&amp;#039;&amp;#039; and/or &amp;#039;&amp;#039;&amp;#039;period&amp;#039;&amp;#039;&amp;#039;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To summarize:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To summarize:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Adam Rose</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Lessons/Hello_World!&amp;diff=4960&amp;oldid=prev</id>
		<title>Adam Rose: Clarification</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Lessons/Hello_World!&amp;diff=4960&amp;oldid=prev"/>
		<updated>2024-10-10T14:03:13Z</updated>

		<summary type="html">&lt;p&gt;Clarification&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:03, 10 October 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l68&quot;&gt;Line 68:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 68:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This time we also have a &amp;lt;vp&amp;gt;class predicates&amp;lt;/vp&amp;gt; section containing a declaration of the &amp;lt;vp&amp;gt;advacedHello&amp;lt;/vp&amp;gt; predicate.  This perticular declaration declares &amp;lt;vp&amp;gt;advancedHello&amp;lt;/vp&amp;gt; as a class predicate which takes one argument which must be a string.   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This time we also have a &amp;lt;vp&amp;gt;class predicates&amp;lt;/vp&amp;gt; section containing a declaration of the &amp;lt;vp&amp;gt;advacedHello&amp;lt;/vp&amp;gt; predicate.  This perticular declaration declares &amp;lt;vp&amp;gt;advancedHello&amp;lt;/vp&amp;gt; as a class predicate which takes one argument which must be a string.   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In the predicate declaration the argument also have the name &amp;lt;vp&amp;gt;Name&amp;lt;/vp&amp;gt; but in the declaration the name is mainly intended for documentation purposes.  The variable name in the declaration and in the clauses can be different, or you can remove it completely.  I recommend that you always have variable names here and that you use variable names that will make it clearer for the user of the predicate what the arguments represents.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In the predicate declaration the argument also have the name &amp;lt;vp&amp;gt;Name&amp;lt;/vp&amp;gt; but in the declaration the name is mainly intended for documentation purposes.  The variable name in the declaration and in the clauses can be different, or you can remove it completely &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;from the declaration&lt;/ins&gt;.  I recommend that you always have variable names here and that you use variable names that will make it clearer for the user of the predicate what the arguments represents.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;What it means to be a &amp;#039;&amp;#039;class&amp;#039;&amp;#039; predicate and what else a predicate can be is discussed elsewhere/later.  But before we leave the subject try this little experiement:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;What it means to be a &amp;#039;&amp;#039;class&amp;#039;&amp;#039; predicate and what else a predicate can be is discussed elsewhere/later.  But before we leave the subject try this little experiement:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Adam Rose</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Lessons/Hello_World!&amp;diff=4706&amp;oldid=prev</id>
		<title>Jonas Sonn Jørgensen at 12:21, 4 February 2020</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Lessons/Hello_World!&amp;diff=4706&amp;oldid=prev"/>
		<updated>2020-02-04T12:21:10Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:21, 4 February 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l72&quot;&gt;Line 72:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 72:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;What it means to be a &amp;#039;&amp;#039;class&amp;#039;&amp;#039; predicate and what else a predicate can be is discussed elsewhere/later.  But before we leave the subject try this little experiement:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;What it means to be a &amp;#039;&amp;#039;class&amp;#039;&amp;#039; predicate and what else a predicate can be is discussed elsewhere/later.  But before we leave the subject try this little experiement:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Lessons/Exercise|Remove the word &amp;lt;vp&amp;gt;class&amp;lt;/vp&amp;gt; from &amp;lt;vp&amp;gt;class predicates&amp;lt;/vp&amp;gt; in the &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;delcaration &lt;/del&gt;of advancedHello. And then build the project.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Lessons/Exercise|Remove the word &amp;lt;vp&amp;gt;class&amp;lt;/vp&amp;gt; from &amp;lt;vp&amp;gt;class predicates&amp;lt;/vp&amp;gt; in the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;declaration &lt;/ins&gt;of advancedHello. And then build the project.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Notice the error message and remember that you get this message when you have forgotten to write &amp;lt;vp&amp;gt;class&amp;lt;/vp&amp;gt; in front of &amp;lt;vp&amp;gt;predicates&amp;lt;/vp&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Notice the error message and remember that you get this message when you have forgotten to write &amp;lt;vp&amp;gt;class&amp;lt;/vp&amp;gt; in front of &amp;lt;vp&amp;gt;predicates&amp;lt;/vp&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Jonas Sonn Jørgensen</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Lessons/Hello_World!&amp;diff=4705&amp;oldid=prev</id>
		<title>Jonas Sonn Jørgensen: Ord</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Lessons/Hello_World!&amp;diff=4705&amp;oldid=prev"/>
		<updated>2020-02-04T12:19:26Z</updated>

		<summary type="html">&lt;p&gt;Ord&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:19, 4 February 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l68&quot;&gt;Line 68:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 68:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This time we also have a &amp;lt;vp&amp;gt;class predicates&amp;lt;/vp&amp;gt; section containing a declaration of the &amp;lt;vp&amp;gt;advacedHello&amp;lt;/vp&amp;gt; predicate.  This perticular declaration declares &amp;lt;vp&amp;gt;advancedHello&amp;lt;/vp&amp;gt; as a class predicate which takes one argument which must be a string.   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This time we also have a &amp;lt;vp&amp;gt;class predicates&amp;lt;/vp&amp;gt; section containing a declaration of the &amp;lt;vp&amp;gt;advacedHello&amp;lt;/vp&amp;gt; predicate.  This perticular declaration declares &amp;lt;vp&amp;gt;advancedHello&amp;lt;/vp&amp;gt; as a class predicate which takes one argument which must be a string.   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In the predicate declaration the argument also have the name &amp;lt;vp&amp;gt;Name&amp;lt;/vp&amp;gt; but in the declaration the name is mainly intended for documentation purposes.  The variable name in &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;teh &lt;/del&gt;declaration and in the clauses can be different, or you can remove it completely.  I &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;reccoment &lt;/del&gt;that you always have names here and that you use names that will make it clearer for the user of the predicate what the arguments represents.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In the predicate declaration the argument also have the name &amp;lt;vp&amp;gt;Name&amp;lt;/vp&amp;gt; but in the declaration the name is mainly intended for documentation purposes.  The variable name in &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;the &lt;/ins&gt;declaration and in the clauses can be different, or you can remove it completely.  I &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;recommend &lt;/ins&gt;that you always have &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;variable &lt;/ins&gt;names here and that you use &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;variable &lt;/ins&gt;names that will make it clearer for the user of the predicate what the arguments represents.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;What it means to be a &amp;#039;&amp;#039;class&amp;#039;&amp;#039; predicate and what else a predicate can be is discussed elsewhere/later.  But before we leave the subject try this little experiement:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;What it means to be a &amp;#039;&amp;#039;class&amp;#039;&amp;#039; predicate and what else a predicate can be is discussed elsewhere/later.  But before we leave the subject try this little experiement:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Jonas Sonn Jørgensen</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Lessons/Hello_World!&amp;diff=4704&amp;oldid=prev</id>
		<title>Jonas Sonn Jørgensen: Har bare rettet et par ord</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Lessons/Hello_World!&amp;diff=4704&amp;oldid=prev"/>
		<updated>2020-02-04T11:58:35Z</updated>

		<summary type="html">&lt;p&gt;Har bare rettet et par ord&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 13:58, 4 February 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In this lesson we will &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;where we &lt;/del&gt;just write some code disregarding the finer details.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In this lesson we will just write some code disregarding the finer details.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Lessons/Exercise|Create a console project.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Lessons/Exercise|Create a console project.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l40&quot;&gt;Line 40:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 40:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To summarize:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;To summarize:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* The &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;actal runnign &lt;/del&gt;code is in &amp;lt;vp&amp;gt;clauses&amp;lt;/vp&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* The &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;actual running &lt;/ins&gt;code is in &amp;lt;vp&amp;gt;clauses&amp;lt;/vp&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;vp&amp;gt;predicates&amp;lt;/vp&amp;gt; is the Visual Prolog name for routines/subroutines/functions/procedures.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;lt;vp&amp;gt;predicates&amp;lt;/vp&amp;gt; is the Visual Prolog name for routines/subroutines/functions/procedures.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Predicates are organized in classes, and predicates from other classes is referenced using &amp;lt;vp&amp;gt;&amp;lt;class&amp;gt;::&amp;lt;predicate&amp;gt;&amp;lt;/vp&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Predicates are organized in classes, and predicates from other classes is referenced using &amp;lt;vp&amp;gt;&amp;lt;class&amp;gt;::&amp;lt;predicate&amp;gt;&amp;lt;/vp&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Jonas Sonn Jørgensen</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Lessons/Hello_World!&amp;diff=4503&amp;oldid=prev</id>
		<title>Thomas Linder Puls: summary2</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Lessons/Hello_World!&amp;diff=4503&amp;oldid=prev"/>
		<updated>2018-09-25T12:36:02Z</updated>

		<summary type="html">&lt;p&gt;summary2&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:36, 25 September 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l91&quot;&gt;Line 91:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 91:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The clause should be understandable, I just want to highlight that we have used &amp;#039;&amp;#039;&amp;#039;comma&amp;#039;&amp;#039;&amp;#039; to separate the two invocations of &amp;lt;vp&amp;gt;advancedHello&amp;lt;/vp&amp;gt;: &amp;#039;&amp;#039;&amp;#039;comma&amp;quot; to separate, &amp;#039;&amp;#039;&amp;#039;period&amp;#039;&amp;#039;&amp;#039; to terminate. I will give a little prediction:  Later when you are familiar with Visual Prolog you will from time to time make syntax errors and (the prediction) 9 out of 10 times the syntax error will concern &amp;#039;&amp;#039;&amp;#039;comma&amp;#039;&amp;#039;&amp;#039; and/or &amp;#039;&amp;#039;&amp;#039;period&amp;#039;&amp;#039;&amp;#039;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The clause should be understandable, I just want to highlight that we have used &amp;#039;&amp;#039;&amp;#039;comma&amp;#039;&amp;#039;&amp;#039; to separate the two invocations of &amp;lt;vp&amp;gt;advancedHello&amp;lt;/vp&amp;gt;: &amp;#039;&amp;#039;&amp;#039;comma&amp;quot; to separate, &amp;#039;&amp;#039;&amp;#039;period&amp;#039;&amp;#039;&amp;#039; to terminate. I will give a little prediction:  Later when you are familiar with Visual Prolog you will from time to time make syntax errors and (the prediction) 9 out of 10 times the syntax error will concern &amp;#039;&amp;#039;&amp;#039;comma&amp;#039;&amp;#039;&amp;#039; and/or &amp;#039;&amp;#039;&amp;#039;period&amp;#039;&amp;#039;&amp;#039;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;To summarize:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Predicates must have a declaration (&amp;lt;vp&gt;run&amp;lt;/vp&gt; is also declared we just havn&#039;t looked at its declaration).&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Arguments in predicates declarations can be given names that clarify the meaning if the arguments.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &amp;lt;vp&gt;stdio::writef&amp;lt;/vp&gt; writes text to the standard output stream using a format string.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* calls are separated by comma and clauses (and predicate declarations) are terminated by period.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* If I get a syntax error it is likely to be related to comma or period.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* A certain other error message (can you recall it) probably means that I have forgotten to write &amp;lt;vp&gt;class&amp;lt;/vp&gt; in front of &amp;lt;vp&gt;predicates&amp;lt;/vp&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Lessons|{{SUBPAGENAME}}]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Lessons|{{SUBPAGENAME}}]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Thomas Linder Puls</name></author>
	</entry>
	<entry>
		<id>https://wiki.visual-prolog.com/index.php?title=Lessons/Hello_World!&amp;diff=4501&amp;oldid=prev</id>
		<title>Thomas Linder Puls: initial</title>
		<link rel="alternate" type="text/html" href="https://wiki.visual-prolog.com/index.php?title=Lessons/Hello_World!&amp;diff=4501&amp;oldid=prev"/>
		<updated>2018-09-25T12:21:38Z</updated>

		<summary type="html">&lt;p&gt;initial&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;In this lesson we will where we just write some code disregarding the finer details.&lt;br /&gt;
&lt;br /&gt;
{{Lessons/Exercise|Create a console project.&lt;br /&gt;
&lt;br /&gt;
Double-click the &amp;#039;&amp;#039;&amp;#039;main.pro&amp;#039;&amp;#039;&amp;#039; file in the project tree to open it in an editor, and update the &amp;lt;vp&amp;gt;run clauses&amp;lt;/vp&amp;gt; to look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;vip&amp;gt;&lt;br /&gt;
clauses&lt;br /&gt;
    run() :-&lt;br /&gt;
        stdio::write(&amp;quot;Hello World!\n&amp;quot;).&lt;br /&gt;
&amp;lt;/vip&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run the program using &amp;#039;&amp;#039;&amp;#039;Build -&amp;gt; Run in window Alt+F5&amp;#039;&amp;#039;&amp;#039;.}}&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;main.pro&amp;#039;&amp;#039;&amp;#039; file contains other stuff, which we will currently disregard, and focus solely on the &amp;lt;vp&amp;gt;run clauses&amp;lt;/vp&amp;gt; you just wrote.&lt;br /&gt;
&lt;br /&gt;
First we have the keyword &amp;lt;vp&amp;gt;clauses&amp;lt;/vp&amp;gt;, which simly indicates that what comes after are &amp;#039;&amp;#039;&amp;#039;clauses&amp;#039;&amp;#039;&amp;#039;.  Clauses is where the actual running code is written.&lt;br /&gt;
&lt;br /&gt;
In this text I will use words like &amp;quot;clause&amp;quot; and &amp;quot;predicate&amp;quot;, which all have their origin in formal logic, but for the moment we will simply treat them as the names that happens to be chosen for things in a Prolog program.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;vp&amp;gt;clauses&amp;lt;/vp&amp;gt; are used to define &amp;lt;vp&amp;gt;predicates&amp;lt;/vp&amp;gt;, where a &amp;#039;&amp;#039;predicate&amp;#039;&amp;#039; is a Prolog routine/subroutine/function/procedure (dear child has many names)&lt;br /&gt;
&lt;br /&gt;
This particular clause defines a predicate &amp;lt;vp&amp;gt;run&amp;lt;/vp&amp;gt; which takes no arguments (indicated by the empty parentheses &amp;lt;vp&amp;gt;()&amp;lt;/vp&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
After the &amp;lt;vp&amp;gt;:-&amp;lt;/vp&amp;gt; token we have the code that will be executed when &amp;lt;vp&amp;gt;run&amp;lt;/vp&amp;gt; is invoked/called.&lt;br /&gt;
&lt;br /&gt;
In this case we call a predicate named &amp;lt;vp&amp;gt;write&amp;lt;/vp&amp;gt; which is defined in the &amp;lt;vp&amp;gt;class&amp;lt;/vp&amp;gt; named &amp;lt;vp&amp;gt;stdio&amp;lt;/vp&amp;gt;.  We will discuss classes later for now we will just consider &amp;lt;vp&amp;gt;stdio::write&amp;lt;/vp&amp;gt; as &amp;quot;a long compound name&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
We supply one argument, i.e. the string literal &amp;lt;vp&amp;gt;&amp;quot;Hello World!\n&amp;quot;&amp;lt;/vp&amp;gt;, to the &amp;lt;vp&amp;gt;stdio::write&amp;lt;/vp&amp;gt; predicate.  Notice that \n in the string literal represents a line shift.&lt;br /&gt;
&lt;br /&gt;
The clause is terminated by a period (i.e. &amp;lt;vp&amp;gt;.&amp;lt;/vp&amp;gt;).  Period is used as terminator for many kinds of entities in Visual Prolog.&lt;br /&gt;
&lt;br /&gt;
The predicate &amp;lt;vp&amp;gt;run&amp;lt;/vp&amp;gt; is called when the program is run, and acts as our entry point to the program.  Actually, the real entry point is the &amp;lt;vp&amp;gt;goal&amp;lt;/vp&amp;gt; a further down in the main.pro file, but that entry point is used to make varous initializations, corresponding clean-up, etc and will call the &amp;lt;vp&amp;gt;run&amp;lt;/vp&amp;gt; predicate in the right spot, so run can act like your entry point.&lt;br /&gt;
&lt;br /&gt;
So when the program is run the predicate &amp;lt;vp&amp;gt;run&amp;lt;/vp&amp;gt; in &amp;#039;&amp;#039;&amp;#039;main.pro&amp;#039;&amp;#039;&amp;#039; will be called and this will (here) call &lt;br /&gt;
&amp;lt;vp&amp;gt;stdio::write&amp;lt;/vp&amp;gt; with the argument &amp;lt;vp&amp;gt;&amp;quot;Hello World!\n&amp;quot;&amp;lt;/vp&amp;gt;, as a result &amp;#039;&amp;#039;Hello World!&amp;#039;&amp;#039; and a line shift will be written to the console window.&lt;br /&gt;
&lt;br /&gt;
Actually, &amp;lt;vp&amp;gt;stdio::write&amp;lt;/vp&amp;gt; writes to the standard output stream, which in a console program is initialized to be the console window.  In a default GUI program the standard output stream will write to a message window, but the standard output stream is under programmer control, so what happens when you call &amp;lt;vp&amp;gt;stdio::write&amp;lt;/vp&amp;gt; will depend of what has taken place in the program.&lt;br /&gt;
&lt;br /&gt;
To summarize:&lt;br /&gt;
&lt;br /&gt;
* The actal runnign code is in &amp;lt;vp&amp;gt;clauses&amp;lt;/vp&amp;gt;&lt;br /&gt;
* &amp;lt;vp&amp;gt;predicates&amp;lt;/vp&amp;gt; is the Visual Prolog name for routines/subroutines/functions/procedures.&lt;br /&gt;
* Predicates are organized in classes, and predicates from other classes is referenced using &amp;lt;vp&amp;gt;&amp;lt;class&amp;gt;::&amp;lt;predicate&amp;gt;&amp;lt;/vp&amp;gt;.&lt;br /&gt;
* The &amp;lt;vp&amp;gt;run&amp;lt;/vp&amp;gt; predicate in &amp;lt;vp&amp;gt;main.pro&amp;lt;/vp&amp;gt; is the (effective) entry to a program.&lt;br /&gt;
* &amp;lt;vp&amp;gt;stdio::write&amp;lt;/vp&amp;gt; can write to the standard output stream&lt;br /&gt;
&lt;br /&gt;
Now let us extend the program with an extra predicate.&lt;br /&gt;
&lt;br /&gt;
{{Lessons/Exercise|Add this code below the &amp;lt;vp&amp;gt;run&amp;lt;/vp&amp;gt; clauses:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;vip&amp;gt;&lt;br /&gt;
class predicates&lt;br /&gt;
    advancedHello : (string Name).&lt;br /&gt;
clauses&lt;br /&gt;
    advancedHello(Name) :-&lt;br /&gt;
        stdio::writef(&amp;quot;Hello %!\n&amp;quot;, Name).&lt;br /&gt;
&amp;lt;/vip&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Build the project using &amp;#039;&amp;#039;&amp;#039;Build -&amp;gt; Build Ctrl+Shift+B&amp;#039;&amp;#039;&amp;#039;}}&lt;br /&gt;
&lt;br /&gt;
When you build the project you will get a warning stating that the predicate &amp;lt;vp&amp;gt;main::advancedHello&amp;lt;/vp&amp;gt; is an unused local predicate.  Which is completely correct; we haven&amp;#039;t used it for anything.  But let us &amp;quot;decipher&amp;quot; it before we go any further.&lt;br /&gt;
&lt;br /&gt;
We notice that we again have a clause in a &amp;lt;vp&amp;gt;clauses&amp;lt;/vp&amp;gt; section.  The clause is for a predicate named &amp;lt;vp&amp;gt; advancedHello&amp;lt;/vp&amp;gt; that takes one argument called &amp;lt;vp&amp;gt;Name&amp;lt;/vp&amp;gt;.  &amp;lt;vp&amp;gt;Name&amp;lt;/vp&amp;gt; is a variable, a variable starts with an uppercase letter and will be green in the editor (variables can also start with an underscore, but we will discuss that later).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;vp&amp;gt;Name&amp;lt;/vp&amp;gt; acts as a formal parameter representing the actual argument used in the call to &amp;lt;vp&amp;gt;advancedHello&amp;lt;/vp&amp;gt;.  In this clause we call &amp;lt;vp&amp;gt;stdio::writef&amp;lt;/vp&amp;gt; which is a more advanced &amp;quot;writer&amp;quot; predicate.  The first argument to &amp;lt;vp&amp;gt;writef&amp;lt;/vp&amp;gt; is a format string, which contains a %-character, what happens when &amp;lt;vp&amp;gt;writef&amp;lt;/vp&amp;gt; is called is that the actual value of &amp;lt;vp&amp;gt;Name&amp;lt;/vp&amp;gt; is substituted into the format string in the place where the %-character is and then the resulting string is written to the standard output.&lt;br /&gt;
&lt;br /&gt;
This time we also have a &amp;lt;vp&amp;gt;class predicates&amp;lt;/vp&amp;gt; section containing a declaration of the &amp;lt;vp&amp;gt;advacedHello&amp;lt;/vp&amp;gt; predicate.  This perticular declaration declares &amp;lt;vp&amp;gt;advancedHello&amp;lt;/vp&amp;gt; as a class predicate which takes one argument which must be a string.  &lt;br /&gt;
&lt;br /&gt;
In the predicate declaration the argument also have the name &amp;lt;vp&amp;gt;Name&amp;lt;/vp&amp;gt; but in the declaration the name is mainly intended for documentation purposes.  The variable name in teh declaration and in the clauses can be different, or you can remove it completely.  I reccoment that you always have names here and that you use names that will make it clearer for the user of the predicate what the arguments represents.&lt;br /&gt;
&lt;br /&gt;
What it means to be a &amp;#039;&amp;#039;class&amp;#039;&amp;#039; predicate and what else a predicate can be is discussed elsewhere/later.  But before we leave the subject try this little experiement:&lt;br /&gt;
&lt;br /&gt;
{{Lessons/Exercise|Remove the word &amp;lt;vp&amp;gt;class&amp;lt;/vp&amp;gt; from &amp;lt;vp&amp;gt;class predicates&amp;lt;/vp&amp;gt; in the delcaration of advancedHello. And then build the project.&lt;br /&gt;
&lt;br /&gt;
Notice the error message and remember that you get this message when you have forgotten to write &amp;lt;vp&amp;gt;class&amp;lt;/vp&amp;gt; in front of &amp;lt;vp&amp;gt;predicates&amp;lt;/vp&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Then insert &amp;lt;vp&amp;gt;class&amp;lt;/vp&amp;gt; again and build the project again.}}&lt;br /&gt;
&lt;br /&gt;
Now that we have the advancedHello predicate we can use it in our &amp;lt;vp&amp;gt;run&amp;lt;/vp&amp;gt; predicate.&lt;br /&gt;
&lt;br /&gt;
{{Lessons/Exercise|Update the run clause to look like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;vip&amp;gt;&lt;br /&gt;
clauses&lt;br /&gt;
    run() :-&lt;br /&gt;
        advancedHello(&amp;quot;Dear&amp;quot;),&lt;br /&gt;
        advancedHello(&amp;quot;World&amp;quot;).&lt;br /&gt;
&amp;lt;/vip&amp;gt;&lt;br /&gt;
Run the project in a window.}}&lt;br /&gt;
&lt;br /&gt;
The clause should be understandable, I just want to highlight that we have used &amp;#039;&amp;#039;&amp;#039;comma&amp;#039;&amp;#039;&amp;#039; to separate the two invocations of &amp;lt;vp&amp;gt;advancedHello&amp;lt;/vp&amp;gt;: &amp;#039;&amp;#039;&amp;#039;comma&amp;quot; to separate, &amp;#039;&amp;#039;&amp;#039;period&amp;#039;&amp;#039;&amp;#039; to terminate. I will give a little prediction:  Later when you are familiar with Visual Prolog you will from time to time make syntax errors and (the prediction) 9 out of 10 times the syntax error will concern &amp;#039;&amp;#039;&amp;#039;comma&amp;#039;&amp;#039;&amp;#039; and/or &amp;#039;&amp;#039;&amp;#039;period&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
[[Category:Lessons|{{SUBPAGENAME}}]]&lt;/div&gt;</summary>
		<author><name>Thomas Linder Puls</name></author>
	</entry>
</feed>