<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://kryptowiki.eu/index.php?action=history&amp;feed=atom&amp;title=OCaml</id>
	<title>OCaml - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://kryptowiki.eu/index.php?action=history&amp;feed=atom&amp;title=OCaml"/>
	<link rel="alternate" type="text/html" href="https://kryptowiki.eu/index.php?title=OCaml&amp;action=history"/>
	<updated>2026-05-18T16:55:56Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Kryptowiki - Die freie Enzyklopädie der Kryptowährungen</subtitle>
	<generator>MediaWiki 1.39.15</generator>
	<entry>
		<id>https://kryptowiki.eu/index.php?title=OCaml&amp;diff=3573&amp;oldid=prev</id>
		<title>Herr E-Mark am 19. Februar 2020 um 13:10 Uhr</title>
		<link rel="alternate" type="text/html" href="https://kryptowiki.eu/index.php?title=OCaml&amp;diff=3573&amp;oldid=prev"/>
		<updated>2020-02-19T13:10:38Z</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;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 19. Februar 2020, 15:10 Uhr&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-l8&quot;&gt;Zeile 8:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 8:&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;  | Designer                      =  &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;  | Designer                      =  &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;  | Entwickler                    = [[Institut national de recherche en informatique et en automatique|INRIA]]&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;  | Entwickler                    = [[Institut national de recherche en informatique et en automatique|INRIA]]&lt;/div&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;  | AktuelleVersion               = 4.07.1&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[1] &lt;/del&gt; (4. Oktober 2018)&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;  | AktuelleVersion               = 4.07.1  (4. Oktober 2018)&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;  | AktuelleVersionFreigabeDatum  =  &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;  | AktuelleVersionFreigabeDatum  =  &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;  | AktuelleVorabVersion          =  &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;  | AktuelleVorabVersion          =  &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-l83&quot;&gt;Zeile 83:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 83:&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;== Einzelnachweise ==&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;== Einzelnachweise ==&lt;/div&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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;references &lt;/del&gt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;gt;&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[https:&lt;/ins&gt;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;/ocaml.org/releases/4.07.1.html OCaml 4.07.1. (abgerufen am 14. Februar 2019)]&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;== Externe Links ==&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;== Externe Links ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key d026f5b5-kw_:diff::1.12:old-3572:rev-3573 --&gt;
&lt;/table&gt;</summary>
		<author><name>Herr E-Mark</name></author>
	</entry>
	<entry>
		<id>https://kryptowiki.eu/index.php?title=OCaml&amp;diff=3572&amp;oldid=prev</id>
		<title>Herr E-Mark am 19. Februar 2020 um 13:08 Uhr</title>
		<link rel="alternate" type="text/html" href="https://kryptowiki.eu/index.php?title=OCaml&amp;diff=3572&amp;oldid=prev"/>
		<updated>2020-02-19T13:08:16Z</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;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 19. Februar 2020, 15:08 Uhr&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-l8&quot;&gt;Zeile 8:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 8:&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;  | Designer                      =  &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;  | Designer                      =  &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;  | Entwickler                    = [[Institut national de recherche en informatique et en automatique|INRIA]]&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;  | Entwickler                    = [[Institut national de recherche en informatique et en automatique|INRIA]]&lt;/div&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;  | AktuelleVersion               = &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;!--von Wikidata--&amp;gt;&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;  | AktuelleVersion               = &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;4.07.1[1]  (4. Oktober 2018)&lt;/ins&gt;&lt;/div&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;  | AktuelleVersionFreigabeDatum  = &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;!--von Wikidata--&amp;gt;&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;  | AktuelleVersionFreigabeDatum  =  &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;  | AktuelleVorabVersion          =  &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;  | AktuelleVorabVersion          =  &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;  | AktuelleVorabVersionFreigabeDatum =  &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;  | AktuelleVorabVersionFreigabeDatum =  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Herr E-Mark</name></author>
	</entry>
	<entry>
		<id>https://kryptowiki.eu/index.php?title=OCaml&amp;diff=3571&amp;oldid=prev</id>
		<title>Herr E-Mark: /* Einzelnachweise */</title>
		<link rel="alternate" type="text/html" href="https://kryptowiki.eu/index.php?title=OCaml&amp;diff=3571&amp;oldid=prev"/>
		<updated>2020-02-19T13:03:57Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Einzelnachweise&lt;/span&gt;&lt;/span&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;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 19. Februar 2020, 15:03 Uhr&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-l83&quot;&gt;Zeile 83:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 83:&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;== Einzelnachweise ==&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;== Einzelnachweise ==&lt;/div&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;&amp;lt;references &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;responsive &lt;/del&gt;/&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;&amp;lt;references /&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;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;== Externe Links ==&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;== Externe Links ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key d026f5b5-kw_:diff::1.12:old-3570:rev-3571 --&gt;
&lt;/table&gt;</summary>
		<author><name>Herr E-Mark</name></author>
	</entry>
	<entry>
		<id>https://kryptowiki.eu/index.php?title=OCaml&amp;diff=3570&amp;oldid=prev</id>
		<title>Herr E-Mark: Die Seite wurde neu angelegt: „ {{Infobox Programmiersprache  | Name                          = OCaml  | Logo                          = Logo  | Beschreibung…“</title>
		<link rel="alternate" type="text/html" href="https://kryptowiki.eu/index.php?title=OCaml&amp;diff=3570&amp;oldid=prev"/>
		<updated>2020-02-19T13:03:27Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „ {{Infobox Programmiersprache  | Name                          = OCaml  | Logo                          = &lt;a href=&quot;/index.php?title=Datei:OCaml_Logo.svg&quot; title=&quot;Datei:OCaml Logo.svg&quot;&gt;230px|Logo&lt;/a&gt;  | Beschreibung…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
{{Infobox Programmiersprache&lt;br /&gt;
 | Name                          = OCaml&lt;br /&gt;
 | Logo                          = [[Datei:OCaml Logo.svg|230px|Logo]]&lt;br /&gt;
 | Beschreibung                  = &lt;br /&gt;
 | Paradigma                     = &lt;br /&gt;
 | Erscheinungsjahr              = 1996&lt;br /&gt;
 | Designer                      = &lt;br /&gt;
 | Entwickler                    = [[Institut national de recherche en informatique et en automatique|INRIA]]&lt;br /&gt;
 | AktuelleVersion               = &amp;lt;!--von Wikidata--&amp;gt;&lt;br /&gt;
 | AktuelleVersionFreigabeDatum  = &amp;lt;!--von Wikidata--&amp;gt;&lt;br /&gt;
 | AktuelleVorabVersion          = &lt;br /&gt;
 | AktuelleVorabVersionFreigabeDatum = &lt;br /&gt;
 | Typisierung                   = &lt;br /&gt;
 | Implementierung               = &lt;br /&gt;
 | Dialekte                      = &lt;br /&gt;
 | Betriebssystem                = [[Plattformunabhängigkeit|Plattformunabhängig]]&lt;br /&gt;
 | Standardisierungen            = &lt;br /&gt;
 | Beeinflusst_von               = [[Caml]] Light, [[Cool (Programmiersprache)|Cool]] [[Standard ML]]&lt;br /&gt;
 | Beeinflusste                  = [[Applied Type System|ATS]], [[Elm (Programmiersprache)|Elm]], [[F-Sharp|F#]], [[F*]], [[Haxe (Programmiersprache)|Haxe]], [[Opa (Programmiersprache)|Opa]], [[Rust (Programmiersprache)|Rust]], [[Scala (Programmiersprache)|Scala]]&lt;br /&gt;
 | Lizenz                        = [[Q Public License]] (Compiler), [[GNU Lesser General Public License|LGPL]] (Bibliothek)&lt;br /&gt;
 | Website                       = [https://ocaml.org/ ocaml.org]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
'''OCaml''' ist eine auf der [[ML (Programmiersprache)|ML]]-Sprachfamilie basierende [[Programmiersprache]]. Sie wird am [[Institut national de recherche en informatique et en automatique|INRIA]] unter der Leitung von [[Xavier Leroy]] entwickelt. Caml stand ursprünglich für ''Categorical Abstract Machine Language'', basiert aber schon seit langem nicht mehr auf diesem abstrakten Konzept. Zusätzlich zu den [[Funktionale Programmierung|funktionalen]] und [[Imperative Programmierung|imperativen]] [[Merkmal]]en von ML unterstützt OCaml [[objektorientiert]]e Konzepte und unterscheidet sich in Details von ML.&lt;br /&gt;
&lt;br /&gt;
OCaml bietet einen [[Compiler]] zur Erzeugung von sowohl [[Bytecode]] als auch [[Maschinencode]]. Der erzeugte Maschinencode ist sehr effizient (vergleichbar mit [[C++]]-Code). Zu den mächtigsten Merkmalen dieser Sprache gehört [[statische Typisierung]] (in Verbindung mit [[Typinferenz]]), parametrische [[Polymorphie (Programmierung)|Polymorphie]], [[Pattern Matching]], ein Mechanismus zur [[Ausnahmebehandlung]] und [[automatische Speicherbereinigung]]. OCaml-[[Distribution (Software)|Distributionen]] enthalten einige allgemeine [[Programmbibliothek|Bibliotheken]] und sind für zahlreiche [[Plattform (Computer)|Plattformen]], inklusive [[Unix]] und [[Microsoft Windows|Windows]] erhältlich.&lt;br /&gt;
&lt;br /&gt;
Ein bekanntes [[Computerprogramm|Programm]], das in OCaml geschrieben wurde, ist [[MLDonkey]], ein [[Peer-to-Peer|P2P]]-[[Client]], der auf diversen [[Betriebssystem]]en läuft und auf verschiedene P2P-[[Netzwerk]]e zugreifen kann.&lt;br /&gt;
&lt;br /&gt;
== Beispiel zur funktionalen Programmierung ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ocaml&amp;quot;&amp;gt;&lt;br /&gt;
 let rec wiederhole f = function&lt;br /&gt;
   | 1 -&amp;gt; f&lt;br /&gt;
   | n -&amp;gt; (fun x -&amp;gt; (wiederhole f (n - 1)) (f x));;&lt;br /&gt;
&lt;br /&gt;
 (wiederhole (fun x -&amp;gt; x + 2) 3) 1;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieses Beispiel zeigt die Mächtigkeit der funktionalen Programmierung: Die Funktion „wiederhole“ kann eine beliebige Funktion mehrfach auf sich selbst anwenden und ist daher eine Funktion höherer Ordnung. Gleichzeitig ist „wiederhole“ [[Polymorphie (Programmierung)|polymorph]] – der Datentyp der ihr übertragenen Funktion steht im vornherein nicht fest. Typisch für OCaml ist das [[Pattern Matching]], die durch das Zeichen &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; gekennzeichnete Fallunterscheidung. Im Beispiel wird die Funktion „addiere zwei“ (&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ocaml&amp;quot; inline=&amp;quot;???&amp;quot;&amp;gt;&lt;br /&gt;
fun x -&amp;gt; x + 2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
) dreifach auf die Zahl 1 angewendet. Der Interpreter gibt 7 aus.&lt;br /&gt;
&lt;br /&gt;
== Universelle Polymorphie ==&lt;br /&gt;
Unter dem Begriff [[Polymorphie (Programmierung)|Polymorphie]] werden häufig die völlig verschiedenen Konzepte der Ad-hoc-Polymorphie und der universellen Polymorphie zusammengefasst. Ad-hoc-Polymorphie, also implizite Typkonversion und das Überladen von Funktionen, sind mit dem strengen statischen Typkonzept von OCaml und der Typinferenz nicht vereinbar.&lt;br /&gt;
&lt;br /&gt;
Als Beispiel sei hier erwähnt, dass z.&amp;amp;nbsp;B. zwischen der Addition von Ganzzahlen (Integer) und der Addition von [[Gleitkommazahl]]en durch unterschiedliche Operatoren unterschieden wird.&lt;br /&gt;
&lt;br /&gt;
Beispiel: Der Ausdruck&lt;br /&gt;
&amp;lt;code&amp;gt;1 + 2&amp;lt;/code&amp;gt; ist in OCaml genau so wohltypisiert wie &amp;lt;code&amp;gt;1.5 +. 2.3&amp;lt;/code&amp;gt;. Der Ausdruck &amp;lt;code&amp;gt;1 + 1.5&amp;lt;/code&amp;gt; hingegen ist nicht wohltypisiert, da der Operator &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; zwei Integer-Werte als Eingaben erwartet. Eine implizite Typkonvertierung findet nicht statt.&lt;br /&gt;
&lt;br /&gt;
Vielmehr implementiert OCaml das mächtigere Konzept der universellen Polymorphie, und zwar in beiden Spielarten, der [[Polymorphie (Programmierung)#Parametrische Polymorphie|parametrischen Polymorphie]] und der [[Polymorphie (Programmierung)#Inklusionspolymorphie|Inklusionspolymorphie]].&lt;br /&gt;
&lt;br /&gt;
== Modulsystem ==&lt;br /&gt;
Eine große Stärke der Programmiersprache OCaml ist ihr Modulsystem. Es ermöglicht dem Programmierer wie die „Packages“ von [[Java (Programmiersprache)|Java]] eine Strukturierung des Quellcodes. Zusammenhängende Definitionen sollen in Module gruppiert werden. Dadurch kann es zu keinen Namenskonflikten zwischen unterschiedlichen Programmteilen und Bibliotheken kommen. Jedes Modul wird mithilfe des struct…end Ausdrucks definiert und erhält mit sig…end seine Signatur (optional).&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ocaml&amp;quot;&amp;gt;&lt;br /&gt;
module Str : sig&lt;br /&gt;
  type t&lt;br /&gt;
  val compare : t -&amp;gt; t -&amp;gt; int&lt;br /&gt;
end = struct&lt;br /&gt;
  type t = string&lt;br /&gt;
  let compare s1 s2 = String.compare s1 s2&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Das Beispiel definiert ein Modul mit Namen &amp;quot;Str&amp;quot;. Dieses Modul besitzt einen Typ &amp;quot;t&amp;quot; und eine Funktion &amp;quot;compare&amp;quot;. Compare erwartet zwei Werte vom Typ t und liefert eine Ganzzahl (Int) als Ergebnis zurück. An diesem Beispiel kann man ebenfalls sehen, wie in OCaml mithilfe von Modulsignaturen Informationen versteckt werden können. Der Typ t ist außerhalb des Moduls Str nur abstrakt sichtbar. Das statische Typsystem von OCaml stellt sicher, dass Programmierer, die an anderen Stellen mit Werten vom Typ t arbeiten, nur die passenden Funktionen verwenden können (z.&amp;amp;nbsp;B. die Funktion compare des Moduls Str). Der Einsatz der Methode compare des Moduls ''String'' ist dagegen mit Werten vom Typ t nicht möglich, auch wenn die interne Repräsentation zeigt, dass dies funktionieren würde (denn jeder Wert vom Typ t ist ein ''String'').&lt;br /&gt;
&lt;br /&gt;
Der Vorteil dieser abstrakten Datentypen besteht aber darin, dass bei einer Änderung der internen Darstellung von t in z.&amp;amp;nbsp;B. eine Unicode-Zeichenkette nur in dem Modul Str Anpassungen vorgenommen werden müssen. Alle anderen Stellen des Programmcodes sind von der Änderung nicht betroffen.&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zum Packagesystem von Java erlaubt es OCaml, Module zu verschachteln.&lt;br /&gt;
&lt;br /&gt;
== Funktoren ==&lt;br /&gt;
Das Modulsystem von OCaml erlaubt das Programmieren von parametrisierten Modulen. Diese erhalten statisch zur [[Übersetzungszeit]] ein anderes Modul als Parameter. Damit lassen sich auf sehr abstrakte Art und Weise Datenstrukturen und Algorithmen entwerfen, ohne dass diese von ihrer konkreten Verwendung abhängen. Als Beispiel ist hier das Modul Set genannt. Es beinhaltet im Wesentlichen einen Funktor Make, der es möglich macht, für Daten Mengen zu erzeugen, falls es für die Daten entsprechende Interfaces gibt (compare und t müssen implementiert sein).&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;ocaml&amp;quot;&amp;gt;&lt;br /&gt;
module SetStr = Set.Make(Str)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Standard ML]]&lt;br /&gt;
* [[F-Sharp|F#]], eine auf OCaml basierte Programmiersprache für [[Microsoft .NET]]&lt;br /&gt;
* [[Extensible ML programming language|EML]], eine andere objektorientierte Erweiterung von ML&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references responsive /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Externe Links ==&lt;br /&gt;
* [https://ocaml.org/ Offizielle OCaml-Website] (englisch)&lt;br /&gt;
* [https://try.ocamlpro.com/ OCaml im Browser testen]&lt;br /&gt;
* [https://caml.inria.fr/ Materialien zu OCaml] (englisch)&lt;br /&gt;
* [https://www.soton.ac.uk/~fangohr/software/ocamltutorial/ OCaml-Tutorial]&lt;br /&gt;
* {{YouTube |list=PL554EC67D1932B25E |title=OCaml-Videotutorial}}&lt;br /&gt;
* [http://camelia.sourceforge.net/ Camelia] – eine [[Integrierte Entwicklungsumgebung|IDE]] für OCaml&lt;br /&gt;
* [https://opam.ocaml.org/ OCaml Package Manager (OPAM)] –  Softwarepaketmanagementsystem für OCaml&lt;br /&gt;
* [http://tuareg.forge.ocamlcore.org/ (X)Emacs OCaml-Modus]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Funktionale Programmiersprache]]&lt;br /&gt;
[[Kategorie:Objektorientierte Programmiersprache]]&lt;/div&gt;</summary>
		<author><name>Herr E-Mark</name></author>
	</entry>
</feed>