https://de.wikipedia.org/w/index.php?action=history&feed=atom&title=Haskell_%28Programmiersprache%29 Haskell (Programmiersprache) - Versionsgeschichte 2025-05-27T20:39:33Z Versionsgeschichte dieser Seite in Wikipedia MediaWiki 1.45.0-wmf.2 https://de.wikipedia.org/w/index.php?title=Haskell_(Programmiersprache)&diff=250468002&oldid=prev Aka: falsches Komma entfernt, Kleinkram 2024-11-18T19:39:05Z <p>falsches Komma entfernt, Kleinkram</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 18. November 2024, 21:39 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 6:</td> <td colspan="2" class="diff-lineno">Zeile 6:</td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div> | Erscheinungsjahr = [[1990]]</div></td> <td class="diff-marker"></td> <td style="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;"><div> | Erscheinungsjahr = [[1990]]</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div> | Designer = </div></td> <td class="diff-marker"></td> <td style="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;"><div> | Designer = </div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="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;"><div> | Entwickler = [[Simon Peyton Jones]], [[Paul Hudak]],&lt;ref&gt;{{Webarchiv |url=http://www.cs.yale.edu/homes/hudak-paul/ |wayback=20110607204813 |text=Professor Paul Hudak’s Website}} an der Yale University&lt;/ref&gt; [[Philip Wadler]]<del style="font-weight: bold; text-decoration: none;">,</del> et al.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="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;"><div> | Entwickler = [[Simon Peyton Jones]], [[Paul Hudak]],&lt;ref&gt;{{Webarchiv |url=http://www.cs.yale.edu/homes/hudak-paul/ |wayback=20110607204813 |text=Professor Paul Hudak’s Website}} an der Yale University&lt;/ref&gt; [[Philip Wadler]] et al.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div> | AktuelleVorabVersion = </div></td> <td class="diff-marker"></td> <td style="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;"><div> | AktuelleVorabVersion = </div></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div> | AktuelleVorabVersionFreigabeDatum = </div></td> <td class="diff-marker"></td> <td style="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;"><div> | AktuelleVorabVersionFreigabeDatum = </div></td> </tr> <tr> <td colspan="2" class="diff-lineno">Zeile 354:</td> <td colspan="2" class="diff-lineno">Zeile 354:</td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>* [[International Conference on Functional Programming Contest]].</div></td> <td class="diff-marker"></td> <td style="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;"><div>* [[International Conference on Functional Programming Contest]].</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>* [[Pugs]] (eine Perl-6-Implementierung in Haskell).</div></td> <td class="diff-marker"></td> <td style="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;"><div>* [[Pugs]] (eine Perl-6-Implementierung in Haskell).</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="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;"><div>*DAML, eine [[Smart Contract|smart contract]] Sprache basierend auf [[Glasgow Haskell Compiler]].</div></td> <td class="diff-marker" data-marker="+"></td> <td style="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;"><div>*<ins style="font-weight: bold; text-decoration: none;"> </ins>DAML, eine [[Smart Contract|smart contract]] Sprache basierend auf [[Glasgow Haskell Compiler]].</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><br /></td> <td class="diff-marker"></td> <td style="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;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>== Literatur ==</div></td> <td class="diff-marker"></td> <td style="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;"><div>== Literatur ==</div></td> </tr> </table> Aka https://de.wikipedia.org/w/index.php?title=Haskell_(Programmiersprache)&diff=244054199&oldid=prev Agentbla: /* Eigenschaften */ tippfehler 2024-04-14T20:37:06Z <p><span class="autocomment">Eigenschaften: </span> tippfehler</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 14. April 2024, 22:37 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 41:</td> <td colspan="2" class="diff-lineno">Zeile 41:</td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div> eingabe &lt;- getLine</div></td> <td class="diff-marker"></td> <td style="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;"><div> eingabe &lt;- getLine</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div> putStr ("Hallo, " ++ eingabe)</div></td> <td class="diff-marker"></td> <td style="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;"><div> putStr ("Hallo, " ++ eingabe)</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="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;"><div> putStrLn "! <del style="font-weight: bold; text-decoration: none;">Wilkommen</del>"</div></td> <td class="diff-marker" data-marker="+"></td> <td style="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;"><div> putStrLn "! <ins style="font-weight: bold; text-decoration: none;">Willkommen</ins>"</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>&lt;/syntaxhighlight&gt;Es gibt keine Unterscheidung zwischen Variablen und Konstanten, da der Wert einer Variable in Haskell nicht verändert werden kann. Man spricht von unveränderlichen oder nicht veränderbaren Variablen. Dies ist auch der Grund, weshalb es keine Unterscheidung von Identität und Gleichwertigkeit von Variablen gibt. Durch diese Eigenschaften ist Haskell der Mathematik sehr nahe und es ist möglich, die Richtigkeit gewisser Programme zu beweisen, beispielsweise durch [[Vollständige Induktion]].</div></td> <td class="diff-marker"></td> <td style="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;"><div>&lt;/syntaxhighlight&gt;Es gibt keine Unterscheidung zwischen Variablen und Konstanten, da der Wert einer Variable in Haskell nicht verändert werden kann. Man spricht von unveränderlichen oder nicht veränderbaren Variablen. Dies ist auch der Grund, weshalb es keine Unterscheidung von Identität und Gleichwertigkeit von Variablen gibt. Durch diese Eigenschaften ist Haskell der Mathematik sehr nahe und es ist möglich, die Richtigkeit gewisser Programme zu beweisen, beispielsweise durch [[Vollständige Induktion]].</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><br /></td> <td class="diff-marker"></td> <td style="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;"><br /></td> </tr> </table> Agentbla https://de.wikipedia.org/w/index.php?title=Haskell_(Programmiersprache)&diff=241793958&oldid=prev Jonest.Nathan am 2. Februar 2024 um 14:37 Uhr 2024-02-02T14:37:33Z <p></p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 2. Februar 2024, 16:37 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 24:</td> <td colspan="2" class="diff-lineno">Zeile 24:</td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>== Entwicklung ==</div></td> <td class="diff-marker"></td> <td style="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;"><div>== Entwicklung ==</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>{{Belege fehlen}}</div></td> <td class="diff-marker"></td> <td style="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;"><div>{{Belege fehlen}}</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="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;"><div>Gegen Ende der 1980er Jahre gab es bereits einige funktionale Programmiersprachen. Um der Wissenschaft eine einheitliche Forschungs- und Entwicklungsbasis bereitzustellen, sollte eine standardisierte und moderne Sprache die funktionale Programmierung vereinheitlichen. Zunächst wollte man dazu [[Miranda (Programmiersprache)|Miranda]] als Ausgangspunkt benutzen, doch deren Entwickler waren<del style="font-weight: bold; text-decoration: none;"> daran</del> nicht interessiert. So wurde 1990 Haskell 1.0 veröffentlicht.&lt;ref&gt;{{Literatur |Autor=Bryan O’Sullivan, John Goerzen, Donald Bruce Stewart |Titel=Real World Haskell: Code You Can Believe In |Verlag="O’Reilly Media, Inc." |Datum=2008 |ISBN=978-0-596-55430-9 |Seiten=xxx (Vorwort)}}&lt;/ref&gt;</div></td> <td class="diff-marker" data-marker="+"></td> <td style="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;"><div>Gegen Ende der 1980er Jahre gab es bereits einige funktionale Programmiersprachen. Um der Wissenschaft eine einheitliche Forschungs- und Entwicklungsbasis bereitzustellen, sollte eine standardisierte und moderne Sprache die funktionale Programmierung vereinheitlichen. Zunächst wollte man dazu [[Miranda (Programmiersprache)|Miranda]] als Ausgangspunkt benutzen, doch deren Entwickler waren nicht<ins style="font-weight: bold; text-decoration: none;"> daran</ins> interessiert. So wurde 1990 Haskell 1.0 veröffentlicht.&lt;ref&gt;{{Literatur |Autor=Bryan O’Sullivan, John Goerzen, Donald Bruce Stewart |Titel=Real World Haskell: Code You Can Believe In |Verlag="O’Reilly Media, Inc." |Datum=2008 |ISBN=978-0-596-55430-9 |Seiten=xxx (Vorwort)}}&lt;/ref&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><br /></td> <td class="diff-marker"></td> <td style="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;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>Die Sprachderivate von Haskell sind zahlreich; dazu zählen ''Parallel Haskell'', ''Distributed Haskell'' (ehemals Goffin), ''Eager Haskell'', ''[[Eden (Programmiersprache)|Eden]]'' mit einem neuen Ansatz zum [[Parallele Programmierung|parallelen Programmieren]] und [[Bedarfsauswertung]], ''DNA-Haskell'' und sogar objektorientierte Varianten (''Haskell++'', ''O’Haskell'', ''Mondrian''). Des Weiteren diente Haskell beim Entwurf neuer Programmiersprachen als Vorlage. So wurde beispielsweise im Falle von [[Python (Programmiersprache)|Python]] die [[Python (Programmiersprache)#Funktionales Programmieren|Lambda-Notation]] sowie Listenverarbeitungssyntax übernommen.&lt;ref&gt;{{Internetquelle |url=https://www.ionos.de/digitalguide/websites/web-entwicklung/was-ist-haskell/ |titel=Haskell: Die funktionale Programmiersprache im Portrait |datum=2020-07-28 |abruf=2022-06-30}}&lt;/ref&gt;</div></td> <td class="diff-marker"></td> <td style="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;"><div>Die Sprachderivate von Haskell sind zahlreich; dazu zählen ''Parallel Haskell'', ''Distributed Haskell'' (ehemals Goffin), ''Eager Haskell'', ''[[Eden (Programmiersprache)|Eden]]'' mit einem neuen Ansatz zum [[Parallele Programmierung|parallelen Programmieren]] und [[Bedarfsauswertung]], ''DNA-Haskell'' und sogar objektorientierte Varianten (''Haskell++'', ''O’Haskell'', ''Mondrian''). Des Weiteren diente Haskell beim Entwurf neuer Programmiersprachen als Vorlage. So wurde beispielsweise im Falle von [[Python (Programmiersprache)|Python]] die [[Python (Programmiersprache)#Funktionales Programmieren|Lambda-Notation]] sowie Listenverarbeitungssyntax übernommen.&lt;ref&gt;{{Internetquelle |url=https://www.ionos.de/digitalguide/websites/web-entwicklung/was-ist-haskell/ |titel=Haskell: Die funktionale Programmiersprache im Portrait |datum=2020-07-28 |abruf=2022-06-30}}&lt;/ref&gt;</div></td> </tr> </table> Jonest.Nathan https://de.wikipedia.org/w/index.php?title=Haskell_(Programmiersprache)&diff=240296665&oldid=prev AxelKing am 18. Dezember 2023 um 13:15 Uhr 2023-12-18T13:15:52Z <p></p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 18. Dezember 2023, 15:15 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 24:</td> <td colspan="2" class="diff-lineno">Zeile 24:</td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>== Entwicklung ==</div></td> <td class="diff-marker"></td> <td style="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;"><div>== Entwicklung ==</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>{{Belege fehlen}}</div></td> <td class="diff-marker"></td> <td style="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;"><div>{{Belege fehlen}}</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="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;"><div>Gegen Ende der 1980er Jahre gab es bereits einige funktionale Programmiersprachen. Um der Wissenschaft eine einheitliche Forschungs- und Entwicklungsbasis bereitzustellen, sollte eine standardisierte und moderne Sprache die funktionale Programmierung vereinheitlichen. Zunächst wollte man dazu [[Miranda (Programmiersprache)|Miranda]] als Ausgangspunkt benutzen<del style="font-weight: bold; text-decoration: none;">;</del> doch deren Entwickler waren daran nicht interessiert. So wurde 1990 Haskell 1.0 veröffentlicht.&lt;ref&gt;{{Literatur |Autor=Bryan O’Sullivan, John Goerzen, Donald Bruce Stewart |Titel=Real World Haskell: Code You Can Believe In |Verlag="O’Reilly Media, Inc." |Datum=2008 |ISBN=978-0-596-55430-9 |Seiten=xxx (Vorwort)}}&lt;/ref&gt;</div></td> <td class="diff-marker" data-marker="+"></td> <td style="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;"><div>Gegen Ende der 1980er Jahre gab es bereits einige funktionale Programmiersprachen. Um der Wissenschaft eine einheitliche Forschungs- und Entwicklungsbasis bereitzustellen, sollte eine standardisierte und moderne Sprache die funktionale Programmierung vereinheitlichen. Zunächst wollte man dazu [[Miranda (Programmiersprache)|Miranda]] als Ausgangspunkt benutzen<ins style="font-weight: bold; text-decoration: none;">,</ins> doch deren Entwickler waren daran nicht interessiert. So wurde 1990 Haskell 1.0 veröffentlicht.&lt;ref&gt;{{Literatur |Autor=Bryan O’Sullivan, John Goerzen, Donald Bruce Stewart |Titel=Real World Haskell: Code You Can Believe In |Verlag="O’Reilly Media, Inc." |Datum=2008 |ISBN=978-0-596-55430-9 |Seiten=xxx (Vorwort)}}&lt;/ref&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><br /></td> <td class="diff-marker"></td> <td style="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;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>Die Sprachderivate von Haskell sind zahlreich; dazu zählen ''Parallel Haskell'', ''Distributed Haskell'' (ehemals Goffin), ''Eager Haskell'', ''[[Eden (Programmiersprache)|Eden]]'' mit einem neuen Ansatz zum [[Parallele Programmierung|parallelen Programmieren]] und [[Bedarfsauswertung]], ''DNA-Haskell'' und sogar objektorientierte Varianten (''Haskell++'', ''O’Haskell'', ''Mondrian''). Des Weiteren diente Haskell beim Entwurf neuer Programmiersprachen als Vorlage. So wurde beispielsweise im Falle von [[Python (Programmiersprache)|Python]] die [[Python (Programmiersprache)#Funktionales Programmieren|Lambda-Notation]] sowie Listenverarbeitungssyntax übernommen.&lt;ref&gt;{{Internetquelle |url=https://www.ionos.de/digitalguide/websites/web-entwicklung/was-ist-haskell/ |titel=Haskell: Die funktionale Programmiersprache im Portrait |datum=2020-07-28 |abruf=2022-06-30}}&lt;/ref&gt;</div></td> <td class="diff-marker"></td> <td style="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;"><div>Die Sprachderivate von Haskell sind zahlreich; dazu zählen ''Parallel Haskell'', ''Distributed Haskell'' (ehemals Goffin), ''Eager Haskell'', ''[[Eden (Programmiersprache)|Eden]]'' mit einem neuen Ansatz zum [[Parallele Programmierung|parallelen Programmieren]] und [[Bedarfsauswertung]], ''DNA-Haskell'' und sogar objektorientierte Varianten (''Haskell++'', ''O’Haskell'', ''Mondrian''). Des Weiteren diente Haskell beim Entwurf neuer Programmiersprachen als Vorlage. So wurde beispielsweise im Falle von [[Python (Programmiersprache)|Python]] die [[Python (Programmiersprache)#Funktionales Programmieren|Lambda-Notation]] sowie Listenverarbeitungssyntax übernommen.&lt;ref&gt;{{Internetquelle |url=https://www.ionos.de/digitalguide/websites/web-entwicklung/was-ist-haskell/ |titel=Haskell: Die funktionale Programmiersprache im Portrait |datum=2020-07-28 |abruf=2022-06-30}}&lt;/ref&gt;</div></td> </tr> <tr> <td colspan="2" class="diff-lineno">Zeile 30:</td> <td colspan="2" class="diff-lineno">Zeile 30:</td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>== Eigenschaften ==</div></td> <td class="diff-marker"></td> <td style="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;"><div>== Eigenschaften ==</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>=== Programmfluss ===</div></td> <td class="diff-marker"></td> <td style="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;"><div>=== Programmfluss ===</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="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;"><div>Haskell ist eine rein [[funktionale Programmiersprache]]. Funktionen geben nur Werte zurück, ändern aber nicht den Zustand eines Programms (d. h. Funktionen haben keine [[Wirkung (Informatik)|Nebeneffekte]]). Das Ergebnis einer Funktion hängt deshalb nur von den Eingangsparametern ab, und nicht vom Kontext, in dem die Funktion aufgerufen wird (z. B. Zeitpunkt des Aufrufs). Daraus folgt, dass bei wiederholtem Aufrufen einer Funktion mit denselben Parametern auch jedes Mal dasselbe Ergebnis folgt. Dies können Haskell<del style="font-weight: bold; text-decoration: none;"> </del>Implementationen nutzen um Funktionen zu [[Cache|cachen]].</div></td> <td class="diff-marker" data-marker="+"></td> <td style="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;"><div>Haskell ist eine rein [[funktionale Programmiersprache]]. Funktionen geben nur Werte zurück, ändern aber nicht den Zustand eines Programms (d. h. Funktionen haben keine [[Wirkung (Informatik)|Nebeneffekte]]). Das Ergebnis einer Funktion hängt deshalb nur von den Eingangsparametern ab, und nicht vom Kontext, in dem die Funktion aufgerufen wird (z. B. Zeitpunkt des Aufrufs). Daraus folgt, dass bei wiederholtem Aufrufen einer Funktion mit denselben Parametern auch jedes Mal dasselbe Ergebnis folgt. Dies können Haskell<ins style="font-weight: bold; text-decoration: none;">-</ins>Implementationen nutzen<ins style="font-weight: bold; text-decoration: none;">,</ins> um Funktionen zu [[Cache|cachen]].</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><br /></td> <td class="diff-marker"></td> <td style="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;"><br /></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="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;"><div>Es gibt keine nativen [[Imperative Programmiersprache|imperativen Sprachkonstrukte]]. Durch die IO<del style="font-weight: bold; text-decoration: none;"> </del>[[Monade (Informatik)|Monade]] ist es möglich, Ein- und Ausgabeoperationen und zustandsabhängige Berechnungen, wie [[Zufallszahlengenerator]]en, rein funktional zu behandeln. Haskell stellt jedoch die sogenannte do-Notation bereit, welche es erlaubt die Verkettung von Monaden in Stil von imperativen Sprachen darzustellen&lt;syntaxhighlight lang="haskell"&gt;</div></td> <td class="diff-marker" data-marker="+"></td> <td style="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;"><div>Es gibt keine nativen [[Imperative Programmiersprache|imperativen Sprachkonstrukte]]. Durch die IO<ins style="font-weight: bold; text-decoration: none;">-</ins>[[Monade (Informatik)|Monade]] ist es möglich, Ein- und Ausgabeoperationen und zustandsabhängige Berechnungen, wie [[Zufallszahlengenerator]]en, rein funktional zu behandeln. Haskell stellt jedoch die sogenannte do-Notation bereit, welche es erlaubt<ins style="font-weight: bold; text-decoration: none;">,</ins> die Verkettung von Monaden in Stil von imperativen Sprachen darzustellen&lt;syntaxhighlight lang="haskell"&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>-- Die Definition einer IO aktion, welche einen Namen von der Konsole einliest</div></td> <td class="diff-marker"></td> <td style="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;"><div>-- Die Definition einer IO aktion, welche einen Namen von der Konsole einliest</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>-- und dann den String "Hallo &lt;name&gt;! Willkommen" ausgibt</div></td> <td class="diff-marker"></td> <td style="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;"><div>-- und dann den String "Hallo &lt;name&gt;! Willkommen" ausgibt</div></td> </tr> <tr> <td colspan="2" class="diff-lineno">Zeile 42:</td> <td colspan="2" class="diff-lineno">Zeile 42:</td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div> putStr ("Hallo, " ++ eingabe)</div></td> <td class="diff-marker"></td> <td style="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;"><div> putStr ("Hallo, " ++ eingabe)</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div> putStrLn "! Wilkommen"</div></td> <td class="diff-marker"></td> <td style="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;"><div> putStrLn "! Wilkommen"</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="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;"><div>&lt;/syntaxhighlight&gt;Es gibt keine Unterscheidung zwischen Variablen und Konstanten, da der Wert einer Variable in <del style="font-weight: bold; text-decoration: none;">haskell</del> nicht verändert werden kann. Man spricht von unveränderlichen oder nicht veränderbaren Variablen. Dies ist auch der Grund, weshalb es keine Unterscheidung von Identität und Gleichwertigkeit von Variablen gibt. Durch diese Eigenschaften ist Haskell der Mathematik sehr nahe und es ist möglich die Richtigkeit gewisser Programme zu <del style="font-weight: bold; text-decoration: none;">Beweisen</del>, beispielsweise durch [[Vollständige Induktion]].</div></td> <td class="diff-marker" data-marker="+"></td> <td style="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;"><div>&lt;/syntaxhighlight&gt;Es gibt keine Unterscheidung zwischen Variablen und Konstanten, da der Wert einer Variable in <ins style="font-weight: bold; text-decoration: none;">Haskell</ins> nicht verändert werden kann. Man spricht von unveränderlichen oder nicht veränderbaren Variablen. Dies ist auch der Grund, weshalb es keine Unterscheidung von Identität und Gleichwertigkeit von Variablen gibt. Durch diese Eigenschaften ist Haskell der Mathematik sehr nahe und es ist möglich<ins style="font-weight: bold; text-decoration: none;">,</ins> die Richtigkeit gewisser Programme zu <ins style="font-weight: bold; text-decoration: none;">beweisen</ins>, beispielsweise durch [[Vollständige Induktion]].</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><br /></td> <td class="diff-marker"></td> <td style="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;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>Haskell ist nicht-strikt. Es werden nur Ausdrücke [[Auswertung (Informatik)|ausgewertet]], die für die Berechnung des Ergebnisses gebraucht werden.</div></td> <td class="diff-marker"></td> <td style="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;"><div>Haskell ist nicht-strikt. Es werden nur Ausdrücke [[Auswertung (Informatik)|ausgewertet]], die für die Berechnung des Ergebnisses gebraucht werden.</div></td> </tr> <tr> <td colspan="2" class="diff-lineno">Zeile 55:</td> <td colspan="2" class="diff-lineno">Zeile 55:</td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>: Die Bedarfsauswertung ist vor allem wegen der strengen Einhaltung des funktionalen Konzepts möglich. Umgekehrt macht die Bedarfsauswertung die funktionale Programmierung angenehmer, denn sie erlaubt es besser, Funktionen, die reine Berechnungen durchführen, von Ein-/Ausgabefunktionen zu trennen.</div></td> <td class="diff-marker"></td> <td style="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;"><div>: Die Bedarfsauswertung ist vor allem wegen der strengen Einhaltung des funktionalen Konzepts möglich. Umgekehrt macht die Bedarfsauswertung die funktionale Programmierung angenehmer, denn sie erlaubt es besser, Funktionen, die reine Berechnungen durchführen, von Ein-/Ausgabefunktionen zu trennen.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>: Die Bedarfsauswertung erlaubt das Arbeiten mit undefinierten Werten und potentiell unendlich großen Datenmengen. So kann man elegant mit Potenzreihen, Zeitreihen (etwa Audiosignalströmen), Kettenbruchzerlegungen, Entscheidungsbäumen und ähnlichem umgehen. Aber auch bei endlichen, aber großen, oder endlichen und noch nicht vollständig bekannten Daten erlaubt diese Art der Ausführung elegante Programme. So kann man etwa eine Transformation eines [[Extensible Markup Language|XML]]-Dokumentes als Folge von Transformationen des gesamten XML-Baumes beschreiben. Ausgeführt wird die Gesamttransformation aber von Beginn zum Ende des XML-Dokumentes, auch wenn das Ende noch gar nicht verfügbar ist.</div></td> <td class="diff-marker"></td> <td style="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;"><div>: Die Bedarfsauswertung erlaubt das Arbeiten mit undefinierten Werten und potentiell unendlich großen Datenmengen. So kann man elegant mit Potenzreihen, Zeitreihen (etwa Audiosignalströmen), Kettenbruchzerlegungen, Entscheidungsbäumen und ähnlichem umgehen. Aber auch bei endlichen, aber großen, oder endlichen und noch nicht vollständig bekannten Daten erlaubt diese Art der Ausführung elegante Programme. So kann man etwa eine Transformation eines [[Extensible Markup Language|XML]]-Dokumentes als Folge von Transformationen des gesamten XML-Baumes beschreiben. Ausgeführt wird die Gesamttransformation aber von Beginn zum Ende des XML-Dokumentes, auch wenn das Ende noch gar nicht verfügbar ist.</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="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;"><div>: Man beachte allerdings, dass Haskell nach Sprachdefinition lediglich ''nicht-strikt'' ist; die Bedarfsauswertung ist nur eine mögliche Implementierung der Nicht-Striktheit <del style="font-weight: bold; text-decoration: none;">(</del>die allerdings von allen gängigen Haskell-Übersetzern angewandt wird<del style="font-weight: bold; text-decoration: none;">)</del>. Andere Implementierungen sind möglich (z.&amp;nbsp;B. ''optimistic evaluation'', Ennals &amp; Peyton Jones, ICFP’03).</div></td> <td class="diff-marker" data-marker="+"></td> <td style="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;"><div>: Man beachte allerdings, dass Haskell nach Sprachdefinition lediglich ''nicht-strikt'' ist; die Bedarfsauswertung ist nur eine mögliche Implementierung der Nicht-Striktheit <ins style="font-weight: bold; text-decoration: none;">- </ins>die allerdings von allen gängigen Haskell-Übersetzern angewandt wird. Andere Implementierungen sind möglich (z.&amp;nbsp;B. ''optimistic evaluation'', Ennals &amp; Peyton Jones, ICFP’03).</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><br /></td> <td class="diff-marker"></td> <td style="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;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>=== Typsystem ===</div></td> <td class="diff-marker"></td> <td style="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;"><div>=== Typsystem ===</div></td> </tr> </table> AxelKing https://de.wikipedia.org/w/index.php?title=Haskell_(Programmiersprache)&diff=240097088&oldid=prev 195.200.70.42: Im Codeblock im Bereich Programmfluss waren Anführungszeichen falsch gesetzt 2023-12-11T17:46:13Z <p>Im Codeblock im Bereich Programmfluss waren Anführungszeichen falsch gesetzt</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 11. Dezember 2023, 19:46 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 35:</td> <td colspan="2" class="diff-lineno">Zeile 35:</td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>-- Die Definition einer IO aktion, welche einen Namen von der Konsole einliest</div></td> <td class="diff-marker"></td> <td style="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;"><div>-- Die Definition einer IO aktion, welche einen Namen von der Konsole einliest</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>-- und dann den String "Hallo &lt;name&gt;! Willkommen" ausgibt</div></td> <td class="diff-marker"></td> <td style="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;"><div>-- und dann den String "Hallo &lt;name&gt;! Willkommen" ausgibt</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="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;"><div>aktion = getLine &gt;&gt;= (\eingabe -&gt; putStr ("Hallo, " ++ eingabe)) &gt;&gt; putStrLn ! <del style="font-weight: bold; text-decoration: none;">"</del>Willkommen"</div></td> <td class="diff-marker" data-marker="+"></td> <td style="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;"><div>aktion = getLine &gt;&gt;= (\eingabe -&gt; putStr ("Hallo, " ++ eingabe)) &gt;&gt; putStrLn <ins style="font-weight: bold; text-decoration: none;">"</ins>! Willkommen"</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><br /></td> <td class="diff-marker"></td> <td style="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;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>-- Eine Identische Definition mit do-Notation</div></td> <td class="diff-marker"></td> <td style="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;"><div>-- Eine Identische Definition mit do-Notation</div></td> </tr> </table> 195.200.70.42 https://de.wikipedia.org/w/index.php?title=Haskell_(Programmiersprache)&diff=240025066&oldid=prev Thomas Dresler: Komma vor „sondern“, „indem“, „wobei“ etc. 2023-12-09T16:02:43Z <p>Komma vor „sondern“, „indem“, „wobei“ etc.</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 9. Dezember 2023, 18:02 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 42:</td> <td colspan="2" class="diff-lineno">Zeile 42:</td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div> putStr ("Hallo, " ++ eingabe)</div></td> <td class="diff-marker"></td> <td style="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;"><div> putStr ("Hallo, " ++ eingabe)</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div> putStrLn "! Wilkommen"</div></td> <td class="diff-marker"></td> <td style="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;"><div> putStrLn "! Wilkommen"</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="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;"><div>&lt;/syntaxhighlight&gt;Es gibt keine Unterscheidung zwischen Variablen und Konstanten, da der Wert einer Variable in haskell nicht verändert werden kann. Man spricht von unveränderlichen oder nicht veränderbaren Variablen. Dies ist auch der Grund weshalb es keine Unterscheidung von Identität und Gleichwertigkeit von Variablen gibt. Durch diese Eigenschaften ist Haskell der Mathematik sehr nahe und es ist möglich die Richtigkeit gewisser Programme zu Beweisen, beispielsweise durch [[Vollständige Induktion]].</div></td> <td class="diff-marker" data-marker="+"></td> <td style="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;"><div>&lt;/syntaxhighlight&gt;Es gibt keine Unterscheidung zwischen Variablen und Konstanten, da der Wert einer Variable in haskell nicht verändert werden kann. Man spricht von unveränderlichen oder nicht veränderbaren Variablen. Dies ist auch der Grund<ins style="font-weight: bold; text-decoration: none;">,</ins> weshalb es keine Unterscheidung von Identität und Gleichwertigkeit von Variablen gibt. Durch diese Eigenschaften ist Haskell der Mathematik sehr nahe und es ist möglich die Richtigkeit gewisser Programme zu Beweisen, beispielsweise durch [[Vollständige Induktion]].</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><br /></td> <td class="diff-marker"></td> <td style="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;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>Haskell ist nicht-strikt. Es werden nur Ausdrücke [[Auswertung (Informatik)|ausgewertet]], die für die Berechnung des Ergebnisses gebraucht werden.</div></td> <td class="diff-marker"></td> <td style="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;"><div>Haskell ist nicht-strikt. Es werden nur Ausdrücke [[Auswertung (Informatik)|ausgewertet]], die für die Berechnung des Ergebnisses gebraucht werden.</div></td> </tr> </table> Thomas Dresler https://de.wikipedia.org/w/index.php?title=Haskell_(Programmiersprache)&diff=239838873&oldid=prev Invisigoth67: typo, form 2023-12-05T11:16:59Z <p>typo, form</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 5. Dezember 2023, 13:16 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 30:</td> <td colspan="2" class="diff-lineno">Zeile 30:</td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>== Eigenschaften ==</div></td> <td class="diff-marker"></td> <td style="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;"><div>== Eigenschaften ==</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>=== Programmfluss ===</div></td> <td class="diff-marker"></td> <td style="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;"><div>=== Programmfluss ===</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="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;"><div>Haskell ist eine rein [[funktionale Programmiersprache]]. Funktionen geben nur Werte zurück, ändern aber nicht den Zustand eines Programms (d. h. Funktionen haben keine [[Wirkung (Informatik)|Nebeneffekte]]). Das Ergebnis einer Funktion hängt deshalb nur von den Eingangsparametern ab, und nicht vom Kontext in dem die Funktion aufgerufen wird (z. B. Zeitpunkt des Aufrufs). Daraus folgt, dass bei wiederholtem Aufrufen einer <del style="font-weight: bold; text-decoration: none;">Funktionen</del> mit denselben Parametern auch jedes <del style="font-weight: bold; text-decoration: none;">mal</del> dasselbe Ergebnis folgt. Dies können Haskell Implementationen nutzen um Funktionen zu [[Cache|cachen]].</div></td> <td class="diff-marker" data-marker="+"></td> <td style="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;"><div>Haskell ist eine rein [[funktionale Programmiersprache]]. Funktionen geben nur Werte zurück, ändern aber nicht den Zustand eines Programms (d. h. Funktionen haben keine [[Wirkung (Informatik)|Nebeneffekte]]). Das Ergebnis einer Funktion hängt deshalb nur von den Eingangsparametern ab, und nicht vom Kontext<ins style="font-weight: bold; text-decoration: none;">,</ins> in dem die Funktion aufgerufen wird (z. B. Zeitpunkt des Aufrufs). Daraus folgt, dass bei wiederholtem Aufrufen einer <ins style="font-weight: bold; text-decoration: none;">Funktion</ins> mit denselben Parametern auch jedes <ins style="font-weight: bold; text-decoration: none;">Mal</ins> dasselbe Ergebnis folgt. Dies können Haskell Implementationen nutzen um Funktionen zu [[Cache|cachen]].</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><br /></td> <td class="diff-marker"></td> <td style="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;"><br /></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="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;"><div>Es gibt keine nativen [[Imperative Programmiersprache|imperativen Sprachkonstrukte]]. Durch die IO [[Monade (Informatik)|Monade]] ist es möglich, Ein- und Ausgabeoperationen und zustandsabhängige Berechnungen, wie [[Zufallszahlengenerator<del style="font-weight: bold; text-decoration: none;">|Zufallszahlengeneratoren</del>]], rein funktional zu behandeln. Haskell stellt jedoch die sogenannte do-Notation bereit, welche es erlaubt die Verkettung von Monaden in Stil von imperativen Sprachen darzustellen&lt;syntaxhighlight lang="haskell"&gt;</div></td> <td class="diff-marker" data-marker="+"></td> <td style="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;"><div>Es gibt keine nativen [[Imperative Programmiersprache|imperativen Sprachkonstrukte]]. Durch die IO [[Monade (Informatik)|Monade]] ist es möglich, Ein- und Ausgabeoperationen und zustandsabhängige Berechnungen, wie [[Zufallszahlengenerator]]<ins style="font-weight: bold; text-decoration: none;">en</ins>, rein funktional zu behandeln. Haskell stellt jedoch die sogenannte do-Notation bereit, welche es erlaubt die Verkettung von Monaden in Stil von imperativen Sprachen darzustellen&lt;syntaxhighlight lang="haskell"&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>-- Die Definition einer IO aktion, welche einen Namen von der Konsole einliest</div></td> <td class="diff-marker"></td> <td style="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;"><div>-- Die Definition einer IO aktion, welche einen Namen von der Konsole einliest</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>-- und dann den String "Hallo &lt;name&gt;! Willkommen" ausgibt</div></td> <td class="diff-marker"></td> <td style="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;"><div>-- und dann den String "Hallo &lt;name&gt;! Willkommen" ausgibt</div></td> </tr> </table> Invisigoth67 https://de.wikipedia.org/w/index.php?title=Haskell_(Programmiersprache)&diff=239775004&oldid=prev Jade.128: Ergänzende Informationen sowie umformulierungen der Eigenschaften Haskells 2023-12-04T18:32:09Z <p>Ergänzende Informationen sowie umformulierungen der Eigenschaften Haskells</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 4. Dezember 2023, 20:32 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 30:</td> <td colspan="2" class="diff-lineno">Zeile 30:</td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>== Eigenschaften ==</div></td> <td class="diff-marker"></td> <td style="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;"><div>== Eigenschaften ==</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>=== Programmfluss ===</div></td> <td class="diff-marker"></td> <td style="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;"><div>=== Programmfluss ===</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="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;"><div><del style="font-weight: bold; text-decoration: none;">* </del>Haskell ist eine rein [[funktionale Programmiersprache]]. Funktionen geben nur Werte zurück, ändern aber nicht den Zustand eines Programms (d.<del style="font-weight: bold; text-decoration: none;">&amp;nbsp;</del>h. Funktionen haben keine [[Wirkung (Informatik)|Nebeneffekte]]). Das Ergebnis einer Funktion hängt deshalb nur von den Eingangsparametern ab, und nicht <del style="font-weight: bold; text-decoration: none;">davon,</del> <del style="font-weight: bold; text-decoration: none;">wann</del> <del style="font-weight: bold; text-decoration: none;">oder</del> <del style="font-weight: bold; text-decoration: none;">wie oft</del> die Funktion aufgerufen wird.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="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;"><div>Haskell ist eine rein [[funktionale Programmiersprache]]. Funktionen geben nur Werte zurück, ändern aber nicht den Zustand eines Programms (d.<ins style="font-weight: bold; text-decoration: none;"> </ins>h. Funktionen haben keine [[Wirkung (Informatik)|Nebeneffekte]]). Das Ergebnis einer Funktion hängt deshalb nur von den Eingangsparametern ab, und nicht <ins style="font-weight: bold; text-decoration: none;">vom</ins> <ins style="font-weight: bold; text-decoration: none;">Kontext</ins> <ins style="font-weight: bold; text-decoration: none;">in</ins> <ins style="font-weight: bold; text-decoration: none;">dem</ins> die Funktion aufgerufen wird<ins style="font-weight: bold; text-decoration: none;"> (z. B. Zeitpunkt des Aufrufs). Daraus folgt, dass bei wiederholtem Aufrufen einer Funktionen mit denselben Parametern auch jedes mal dasselbe Ergebnis folgt. Dies können Haskell Implementationen nutzen um Funktionen zu [[Cache|cachen]]</ins>.</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="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;"><br /></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="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;"><div><del style="font-weight: bold; text-decoration: none;">* </del>Es gibt keine [[Imperative Programmiersprache|imperativen Sprachkonstrukte]]. Durch [[Monade (Informatik)|<del style="font-weight: bold; text-decoration: none;">Monaden</del>]] ist es möglich, Ein- und Ausgabeoperationen und zustandsabhängige Berechnungen wie <del style="font-weight: bold; text-decoration: none;">Zufallsgeneratoren</del> rein funktional zu behandeln.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="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;"><div>Es gibt keine<ins style="font-weight: bold; text-decoration: none;"> nativen</ins> [[Imperative Programmiersprache|imperativen Sprachkonstrukte]]. Durch<ins style="font-weight: bold; text-decoration: none;"> die IO</ins> [[Monade (Informatik)|<ins style="font-weight: bold; text-decoration: none;">Monade</ins>]] ist es möglich, Ein- und Ausgabeoperationen und zustandsabhängige Berechnungen<ins style="font-weight: bold; text-decoration: none;">,</ins> wie <ins style="font-weight: bold; text-decoration: none;">[[Zufallszahlengenerator|Zufallszahlengeneratoren]],</ins> rein funktional zu behandeln.<ins style="font-weight: bold; text-decoration: none;"> Haskell stellt jedoch die sogenannte do-Notation bereit, welche es erlaubt die Verkettung von Monaden in Stil von imperativen Sprachen darzustellen&lt;syntaxhighlight lang="haskell"&gt;</ins></div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="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;"><div>* Es gibt keine Operationen, die einen Variablenwert verändern. So gibt es auch keine Unterscheidung zwischen Variablen und Konstanten und man braucht keine &lt;code&gt;const&lt;/code&gt;-Attribute oder Literal-Makros wie in [[C++]] oder in [[C (Programmiersprache)|C]].</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="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;"><div>-- Die Definition einer IO aktion, welche einen Namen von der Konsole einliest</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="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;"><div>* Zwischen Identität und Gleichwertigkeit von Objekten wird nicht unterschieden.</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="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;"><div>-- und dann den String "Hallo &lt;name&gt;! Willkommen" ausgibt</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="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;"><div>* Da Nebeneffekte fehlen, sind Programmbeweise beträchtlich einfacher.</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="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;"><div>aktion = getLine &gt;&gt;= (\eingabe -&gt; putStr ("Hallo, " ++ eingabe)) &gt;&gt; putStrLn ! "Willkommen"</div></td> </tr> <tr> <td class="diff-marker"><a class="mw-diff-movedpara-left" title="Der Absatz wurde verschoben. Klicken, um zur neuen Stelle zu springen." href="#movedpara_12_8_rhs">&#x26AB;</a></td> <td style="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;"><div><a name="movedpara_11_0_lhs"></a><del style="font-weight: bold; text-decoration: none;">* </del>Haskell ist nicht-strikt. Es werden nur Ausdrücke [[Auswertung (Informatik)|ausgewertet]], die für die Berechnung des Ergebnisses gebraucht werden.</div></td> <td colspan="2" class="diff-empty diff-side-added"></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="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;"><br /></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="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;"><div>-- Eine Identische Definition mit do-Notation</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="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;"><div>aktion = do</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="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;"><div> eingabe &lt;- getLine</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="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;"><div> putStr ("Hallo, " ++ eingabe)</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="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;"><div> putStrLn "! Wilkommen"</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="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;"><div>&lt;/syntaxhighlight&gt;Es gibt keine Unterscheidung zwischen Variablen und Konstanten, da der Wert einer Variable in haskell nicht verändert werden kann. Man spricht von unveränderlichen oder nicht veränderbaren Variablen. Dies ist auch der Grund weshalb es keine Unterscheidung von Identität und Gleichwertigkeit von Variablen gibt. Durch diese Eigenschaften ist Haskell der Mathematik sehr nahe und es ist möglich die Richtigkeit gewisser Programme zu Beweisen, beispielsweise durch [[Vollständige Induktion]].</div></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker" data-marker="+"></td> <td style="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;"><br /></td> </tr> <tr> <td colspan="2" class="diff-empty diff-side-deleted"></td> <td class="diff-marker"><a class="mw-diff-movedpara-right" title="Der Absatz wurde verschoben. Klicken, um zur alten Stelle zu springen." href="#movedpara_11_0_lhs">&#x26AB;</a></td> <td style="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;"><div><a name="movedpara_12_8_rhs"></a>Haskell ist nicht-strikt. Es werden nur Ausdrücke [[Auswertung (Informatik)|ausgewertet]], die für die Berechnung des Ergebnisses gebraucht werden.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>&lt;syntaxhighlight lang="haskell"&gt;</div></td> <td class="diff-marker"></td> <td style="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;"><div>&lt;syntaxhighlight lang="haskell"&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div> first x y = x</div></td> <td class="diff-marker"></td> <td style="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;"><div> first x y = x</div></td> </tr> </table> Jade.128 https://de.wikipedia.org/w/index.php?title=Haskell_(Programmiersprache)&diff=236482970&oldid=prev Thomas Dresler: Tippfehler korrigiert 2023-08-16T22:16:59Z <p>Tippfehler korrigiert</p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 17. August 2023, 00:16 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 24:</td> <td colspan="2" class="diff-lineno">Zeile 24:</td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>== Entwicklung ==</div></td> <td class="diff-marker"></td> <td style="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;"><div>== Entwicklung ==</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>{{Belege fehlen}}</div></td> <td class="diff-marker"></td> <td style="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;"><div>{{Belege fehlen}}</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="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;"><div>Gegen Ende der 1980er Jahre gab es bereits einige funktionale Programmiersprachen. Um der Wissenschaft eine einheitliche Forschungs- und Entwicklungsbasis bereitzustellen, sollte eine standardisierte und moderne Sprache die funktionale Programmierung vereinheitlichen. Zunächst wollte man dazu [[Miranda (Programmiersprache)|Miranda]] als Ausgangspunkt benutzen; doch deren Entwickler waren daran nicht interessiert. So wurde 1990 Haskell 1.0 veröffentlicht.&lt;ref&gt;{{Literatur |Autor=Bryan <del style="font-weight: bold; text-decoration: none;">O'Sullivan</del>, John Goerzen, Donald Bruce Stewart |Titel=Real World Haskell: Code You Can Believe In |Verlag="<del style="font-weight: bold; text-decoration: none;">O'Reilly</del> Media, Inc." |Datum=2008 |ISBN=978-0-596-55430-9 |Seiten=xxx (Vorwort)}}&lt;/ref&gt;</div></td> <td class="diff-marker" data-marker="+"></td> <td style="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;"><div>Gegen Ende der 1980er Jahre gab es bereits einige funktionale Programmiersprachen. Um der Wissenschaft eine einheitliche Forschungs- und Entwicklungsbasis bereitzustellen, sollte eine standardisierte und moderne Sprache die funktionale Programmierung vereinheitlichen. Zunächst wollte man dazu [[Miranda (Programmiersprache)|Miranda]] als Ausgangspunkt benutzen; doch deren Entwickler waren daran nicht interessiert. So wurde 1990 Haskell 1.0 veröffentlicht.&lt;ref&gt;{{Literatur |Autor=Bryan <ins style="font-weight: bold; text-decoration: none;">O’Sullivan</ins>, John Goerzen, Donald Bruce Stewart |Titel=Real World Haskell: Code You Can Believe In |Verlag="<ins style="font-weight: bold; text-decoration: none;">O’Reilly</ins> Media, Inc." |Datum=2008 |ISBN=978-0-596-55430-9 |Seiten=xxx (Vorwort)}}&lt;/ref&gt;</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><br /></td> <td class="diff-marker"></td> <td style="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;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>Die Sprachderivate von Haskell sind zahlreich; dazu zählen ''Parallel Haskell'', ''Distributed Haskell'' (ehemals Goffin), ''Eager Haskell'', ''[[Eden (Programmiersprache)|Eden]]'' mit einem neuen Ansatz zum [[Parallele Programmierung|parallelen Programmieren]] und [[Bedarfsauswertung]], ''DNA-Haskell'' und sogar objektorientierte Varianten (''Haskell++'', ''O’Haskell'', ''Mondrian''). Des Weiteren diente Haskell beim Entwurf neuer Programmiersprachen als Vorlage. So wurde beispielsweise im Falle von [[Python (Programmiersprache)|Python]] die [[Python (Programmiersprache)#Funktionales Programmieren|Lambda-Notation]] sowie Listenverarbeitungssyntax übernommen.&lt;ref&gt;{{Internetquelle |url=https://www.ionos.de/digitalguide/websites/web-entwicklung/was-ist-haskell/ |titel=Haskell: Die funktionale Programmiersprache im Portrait |datum=2020-07-28 |abruf=2022-06-30}}&lt;/ref&gt;</div></td> <td class="diff-marker"></td> <td style="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;"><div>Die Sprachderivate von Haskell sind zahlreich; dazu zählen ''Parallel Haskell'', ''Distributed Haskell'' (ehemals Goffin), ''Eager Haskell'', ''[[Eden (Programmiersprache)|Eden]]'' mit einem neuen Ansatz zum [[Parallele Programmierung|parallelen Programmieren]] und [[Bedarfsauswertung]], ''DNA-Haskell'' und sogar objektorientierte Varianten (''Haskell++'', ''O’Haskell'', ''Mondrian''). Des Weiteren diente Haskell beim Entwurf neuer Programmiersprachen als Vorlage. So wurde beispielsweise im Falle von [[Python (Programmiersprache)|Python]] die [[Python (Programmiersprache)#Funktionales Programmieren|Lambda-Notation]] sowie Listenverarbeitungssyntax übernommen.&lt;ref&gt;{{Internetquelle |url=https://www.ionos.de/digitalguide/websites/web-entwicklung/was-ist-haskell/ |titel=Haskell: Die funktionale Programmiersprache im Portrait |datum=2020-07-28 |abruf=2022-06-30}}&lt;/ref&gt;</div></td> </tr> <tr> <td colspan="2" class="diff-lineno">Zeile 49:</td> <td colspan="2" class="diff-lineno">Zeile 49:</td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><br /></td> <td class="diff-marker"></td> <td style="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;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>=== Typsystem ===</div></td> <td class="diff-marker"></td> <td style="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;"><div>=== Typsystem ===</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="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;"><div>* Haskell ist [[Starke Typisierung|stark typisiert]].&lt;ref&gt;{{Literatur |Autor=Jens Ohlig, Hannes Mehnert, Stefanie Schirmer |Titel=Das Curry-Buch: Funktional programmieren lernen mit JavaScript |Verlag=<del style="font-weight: bold; text-decoration: none;">O'Reilly</del> Germany |Datum=2013 |ISBN=978-3-86899-370-7 |Seiten=144}}&lt;/ref&gt; Es wird also zum Beispiel streng zwischen [[Wahrheitswert]]en, [[Char (Datentyp)|Zeichen]], [[Ganze Zahl|ganzen Zahlen]], [[Gleitkommazahl]]en und [[Funktion (Programmierung)|Funktionen]] von und zu verschiedenen Typen unterschieden.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="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;"><div>* Haskell ist [[Starke Typisierung|stark typisiert]].&lt;ref&gt;{{Literatur |Autor=Jens Ohlig, Hannes Mehnert, Stefanie Schirmer |Titel=Das Curry-Buch: Funktional programmieren lernen mit JavaScript |Verlag=<ins style="font-weight: bold; text-decoration: none;">O’Reilly</ins> Germany |Datum=2013 |ISBN=978-3-86899-370-7 |Seiten=144}}&lt;/ref&gt; Es wird also zum Beispiel streng zwischen [[Wahrheitswert]]en, [[Char (Datentyp)|Zeichen]], [[Ganze Zahl|ganzen Zahlen]], [[Gleitkommazahl]]en und [[Funktion (Programmierung)|Funktionen]] von und zu verschiedenen Typen unterschieden.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><br /></td> <td class="diff-marker"></td> <td style="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;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>* Haskell erlaubt Typvariablen. Damit können Funktionen sehr allgemein formuliert werden. Wird eine allgemeingehaltene Funktion für bestimmte Typen verwendet, werden automatisch die Typen abgeglichen ([[Typinferenz]]).</div></td> <td class="diff-marker"></td> <td style="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;"><div>* Haskell erlaubt Typvariablen. Damit können Funktionen sehr allgemein formuliert werden. Wird eine allgemeingehaltene Funktion für bestimmte Typen verwendet, werden automatisch die Typen abgeglichen ([[Typinferenz]]).</div></td> </tr> </table> Thomas Dresler https://de.wikipedia.org/w/index.php?title=Haskell_(Programmiersprache)&diff=236427145&oldid=prev 37.49.35.245 am 14. August 2023 um 20:57 Uhr 2023-08-14T20:57:42Z <p></p> <table style="background-color: #fff; color: #202122;" data-mw="interface"> <col class="diff-marker" /> <col class="diff-content" /> <col class="diff-marker" /> <col class="diff-content" /> <tr class="diff-title" lang="de"> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Nächstältere Version</td> <td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Version vom 14. August 2023, 22:57 Uhr</td> </tr><tr> <td colspan="2" class="diff-lineno">Zeile 340:</td> <td colspan="2" class="diff-lineno">Zeile 340:</td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><br /></td> <td class="diff-marker"></td> <td style="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;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>== Einfluss ==</div></td> <td class="diff-marker"></td> <td style="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;"><div>== Einfluss ==</div></td> </tr> <tr> <td class="diff-marker" data-marker="−"></td> <td style="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;"><div>Haskell dient wegen seiner stark akademischen Herkunft vielen Programmier- und Scriptsprachen als Vorbild für neue Sprachfunktionalität. So haben u.&amp;nbsp;a. [[Perl (Programmiersprache)|Perl]], [[Python (Programmiersprache)|Python]], [[JavaScript]], [[Java (Programmiersprache)|Java]], [[Scala (Programmiersprache)|Scala]] und [[PHP]] Ideen der funktionalen Programmierung von Haskell übernommen. Dazu gehören Funktionen höherer Ordnung wie map, filter usw., Teile der Art, wie generische Programmierung implementiert wurde, und anderes.</div></td> <td class="diff-marker" data-marker="+"></td> <td style="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;"><div>Haskell dient wegen seiner stark akademischen Herkunft vielen Programmier- und Scriptsprachen als Vorbild für neue Sprachfunktionalität. So haben u.&amp;nbsp;a. [[Perl (Programmiersprache)|Perl]], [[Python (Programmiersprache)|Python]], [[JavaScript]], [[Java (Programmiersprache)|Java]], [[Scala (Programmiersprache)|Scala<ins style="font-weight: bold; text-decoration: none;">]], [[Rust (Programmiersprache)|Rust</ins>]] und [[PHP]] Ideen der funktionalen Programmierung von Haskell übernommen. Dazu gehören Funktionen höherer Ordnung wie map, filter usw., Teile der Art, wie generische Programmierung implementiert wurde, und anderes.</div></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><br /></td> <td class="diff-marker"></td> <td style="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;"><br /></td> </tr> <tr> <td class="diff-marker"></td> <td style="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;"><div>== Siehe auch ==</div></td> <td class="diff-marker"></td> <td style="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;"><div>== Siehe auch ==</div></td> </tr> </table> 37.49.35.245