Escher funktionale und logische Programmierung
|
|
|
- Dirk Schulz
- vor 9 Jahren
- Abrufe
Transkript
1 Escher funktionale und logische Programmierung Seminar Programming Languages From Hell Lars Hupel Dieses Werk ist lizenziert unter den Bedingungen der Creative Commons Namensnennung 3.0 Deutschland. Lars Hupel Escher / 20
2 Paradigmen funktional Reduktionssemantik Pattern Matching Lazy Evaluation logisch Backtracking Unifikation Lars Hupel Escher / 20
3 Escher: Code-Beispiel &&: Bool -> Bool -> Bool ; (&& True x) = x; (&& False x) = False ; (&& ( x y) z) = ( (&& x z) (&& y z)); (&& ( ite u v w) t) = ( ite (&& u t) v (&& w t)); Lars Hupel Escher / 20
4 Auswertungsstrategie Escher-Programme bestehen aus einzelnen Definitionen: h = b Auswertung durch Termersetzung Term ( Redex ) t wird durch Rumpf b einer passenden Definition h ersetzt, wenn: θ(h) t Lars Hupel Escher / 20
5 Auswertungsstrategie Escher-Programme bestehen aus einzelnen Definitionen: h = b Auswertung durch Termersetzung Term ( Redex ) t wird durch Rumpf b einer passenden Definition h ersetzt, wenn: θ(h) t Lars Hupel Escher / 20
6 Auswertungsstrategie Escher-Programme bestehen aus einzelnen Definitionen: h = b Auswertung durch Termersetzung Term ( Redex ) t wird durch Rumpf b einer passenden Definition h ersetzt, wenn: θ(h) t Lars Hupel Escher / 20
7 Funktionen als Werte Behandlung von Lambda-Ausdrücken als Werte aber: Funktionen nicht vergleichbar Escher erlaubt trotzdem Matching auf Funktionen Lars Hupel Escher / 20
8 Funktionen als Werte Behandlung von Lambda-Ausdrücken als Werte aber: Funktionen nicht vergleichbar Escher erlaubt trotzdem Matching auf Funktionen Lars Hupel Escher / 20
9 Funktionen als Werte Haskell Prelude> \x -> 3 <interactive>:1:0: No instance for (Show (t1 -> t)) arising from a use of print at <interactive>:1:0-6 Possible fix: add an instance declaration for (Show (t1 -> t)) In a stmt of a do expression: print it Lars Hupel Escher / 20
10 Funktionen als Werte Escher prompt> : \x. 3; Query: \x.3 Answer: \x.3 ; Lars Hupel Escher / 20
11 Escher: Code-Beispiel &&: Bool -> Bool -> Bool ; (&& True x) = x; (&& False x) = False ; (&& ( x y) z) = ( (&& x z) (&& y z)); (&& ( ite u v w) t) = ( ite (&& u t) v (&& w t)); Lars Hupel Escher / 20
12 Escher: Code-Beispiel &&: Bool -> Bool -> Bool ; (&& True x) = x; (&& False x) = False ; (&& ( x y) z) = ( (&& x z) (&& y z)); (&& ( ite u v w) t) = ( ite (&& u t) v (&& w t)); Beispielanfrage: && ( True x) y Lars Hupel Escher / 20
13 Syntaktischer Zucker Mengen {1,2,3} wird transformiert in eine Funktion: \ pv.( ite (== pv 1) True ( ite (== pv 2) True ( ite (== pv 3) True False ))) ; Lars Hupel Escher / 20
14 Syntaktischer Zucker Mengen {1,2,3} wird transformiert in eine Funktion: \ pv.( ite (== pv 1) True ( ite (== pv 2) True ( ite (== pv 3) True False ))) ; Lars Hupel Escher / 20
15 Syntaktischer Zucker Quantoren Unterstützung für Existenz- und Allquantor native Formulierung von logischen Aussagen Lars Hupel Escher / 20
16 Syntaktischer Zucker Quantoren Unterstützung für Existenz- und Allquantor native Formulierung von logischen Aussagen \ forall y. ( implies ({1,2} y) ({1,2,3} y)); \ exists y. (&& ({1,2} y) ({3,4} y)); Lars Hupel Escher / 20
17 Syntaktischer Zucker Quantoren Unterstützung für Existenz- und Allquantor native Formulierung von logischen Aussagen \ forall y. ( implies ({1,2} y) ({1,2,3} y)); True \ exists y. (&& ({1,2} y) ({3,4} y)); Lars Hupel Escher / 20
18 Syntaktischer Zucker Quantoren Unterstützung für Existenz- und Allquantor native Formulierung von logischen Aussagen \ forall y. ( implies ({1,2} y) ({1,2,3} y)); True \ exists y. (&& ({1,2} y) ({3,4} y)); False Lars Hupel Escher / 20
19 Programmierstile funktional Funktionen: Parameter Resultat concat : (( List a) * ( List a)) -> ( List a) ; Lars Hupel Escher / 20
20 Programmierstile funktional Funktionen: Parameter Resultat concat : (( List a) * ( List a)) -> ( List a) ; Lars Hupel Escher / 20
21 Programmierstile logisch Relationen: Parameter Resultat {True, False} append : (( List a) * ( List a) * ( List a)) -> Bool ; Lars Hupel Escher / 20
22 Programmierstile logisch Relationen: Parameter Resultat {True, False} append : (( List a) * ( List a) * ( List a)) -> Bool ; Lars Hupel Escher / 20
23 Standardbibliothek keine eingebauten Umformungsregeln Definition komplett über Bibliothek Nicht-Standard-Logiken möglich Lars Hupel Escher / 20
24 Standardbibliothek keine eingebauten Umformungsregeln Definition komplett über Bibliothek Nicht-Standard-Logiken möglich Lars Hupel Escher / 20
25 Standardbibliothek keine eingebauten Umformungsregeln Definition komplett über Bibliothek Nicht-Standard-Logiken möglich Lars Hupel Escher / 20
26 Damenproblem safe : ( Int * Int ) -> ( List ( Int * Int )) -> Bool ; ( safe q []) = True ; ( safe (x, y) (# (u, v) z)) = (&& ( (== (x, y) (u, v)) (&& ( not (== ( sub x u) ( sub y v))) ( not (== ( sub u x) ( sub y v))) )) ( safe (x, y) z) ); safelist : ( List ( Int * Int )) -> Bool ; ( safelist x) = \ forall y. ( implies ( inlist y x) ( safe y x)); Lars Hupel Escher / 20
27 Damenproblem queenlist : Int -> ( List ( Int * Int )) -> Bool ; ( queenlist n x) = \ exists y. (&& ( permute (( range n), y)) (== x ( zip (( range n), y))) ); solution : Int -> ( List ( Int * Int )) -> Bool ; ( solution n x) = (&& ( queenlist n x) ( safelist x)); altcount : Bool -> Int ; ( altcount (== x_sv (# y z))) = 1; ( altcount ( x y)) = ( add ( altcount x) ( altcount y)); ( altcount False ) = 0; Lars Hupel Escher / 20
28 Damenproblem : ( altcount (( solution 4) x)) Query : ( altcount (( solution 4) x)) Steps = 9437 Answer : 2 ; : ( altcount (( solution 6) x)) Query : ( altcount (( solution 6) x)) Steps = Answer : 4 ; Lars Hupel Escher / 20
29 Vorteile elegante Weise, Probleme zu formulieren direkter Umgang mit mathematischen Konstrukten Lars Hupel Escher / 20
30 Vorteile elegante Weise, Probleme zu formulieren direkter Umgang mit mathematischen Konstrukten Lars Hupel Escher / 20
31 Nachteile schlechte Performance hohe Komplexität als Lehrsprache ausgelegt, daher kein vernünftiger Compiler verfügbar Lars Hupel Escher / 20
32 Nachteile schlechte Performance hohe Komplexität als Lehrsprache ausgelegt, daher kein vernünftiger Compiler verfügbar Lars Hupel Escher / 20
33 Nachteile schlechte Performance hohe Komplexität als Lehrsprache ausgelegt, daher kein vernünftiger Compiler verfügbar Lars Hupel Escher / 20
34 Vergleich mit Curry Curry: neuere funktional-logische Sprache andere Auswertungsstrategien, wenn Variablen (noch) unbekannt sind Narrowing: geschicktes Raten Residuation: Verzögerung Escher führt strikt Termersetzung durch Lars Hupel Escher / 20
35 Vergleich mit Curry Curry: neuere funktional-logische Sprache andere Auswertungsstrategien, wenn Variablen (noch) unbekannt sind Narrowing: geschicktes Raten Residuation: Verzögerung Escher führt strikt Termersetzung durch Lars Hupel Escher / 20
36 Vergleich mit Curry Curry: neuere funktional-logische Sprache andere Auswertungsstrategien, wenn Variablen (noch) unbekannt sind Narrowing: geschicktes Raten Residuation: Verzögerung Escher führt strikt Termersetzung durch Lars Hupel Escher / 20
37 Vergleich mit Curry Curry: neuere funktional-logische Sprache andere Auswertungsstrategien, wenn Variablen (noch) unbekannt sind Narrowing: geschicktes Raten Residuation: Verzögerung Escher führt strikt Termersetzung durch Lars Hupel Escher / 20
38 Vergleich mit Curry Curry: neuere funktional-logische Sprache andere Auswertungsstrategien, wenn Variablen (noch) unbekannt sind Narrowing: geschicktes Raten Residuation: Verzögerung Escher führt strikt Termersetzung durch Lars Hupel Escher / 20
39 Escher funktionale und logische Programmierung Seminar Programming Languages From Hell Lars Hupel Dieses Werk ist lizenziert unter den Bedingungen der Creative Commons Namensnennung 3.0 Deutschland. Lars Hupel Escher / 20
Haskell, Typen, und Typberechnung. Grundlagen der Programmierung 3 A. Einige andere Programmiersprachen. Typisierung in Haskell
Haskell, Typen, und Typberechnung Grundlagen der Programmierung 3 A Typen, Typberechnung und Typcheck Prof. Dr. Manfred Schmidt-Schauß Ziele: Haskells Typisierung Typisierungs-Regeln Typ-Berechnung Milners
Grundlegende Datentypen
Funktionale Programmierung Grundlegende Datentypen Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 14.11.2017 15:37 Inhaltsverzeichnis Typen........................................
Haskell, Typen, und Typberechnung. Grundlagen der Programmierung 3 A. Überladung und Konversion in Haskell. Typisierung in Haskell
Haskell, Typen, und Typberechnung Grundlagen der Programmierung 3 A Typen, Typberechnung und Typcheck Prof. Dr Manfred Schmidt-Schauß Ziele: Haskells Typisierung Typisierungs-Regeln Typ-Berechnung Sommersemester
Funktionale Programmierung Grundlegende Datentypen
Grundlegende Datentypen Prof. Dr. Oliver Braun Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 06.11.2017 16:45 Inhaltsverzeichnis Typen........................................
Funktionale Programmierung. Das Funktionale Quiz. Das Funktionale Quiz. Das Funktionale Quiz
Funktionale Programmierung Das Funktionale Quiz 31.5.2005 Nenne eine Gemeinsamkeit zwischen Typklassen und OO-Klassen Das Funktionale Quiz Das Funktionale Quiz Nenne einen Unterschied zwischen Typklassen
Gliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung
Gliederung n Teil I: Einleitung und Grundbegriffe l 1. Organisatorisches l 2. Grundlagen von Programmiersprachen n Teil II: Imperative und objektorientierte Programmierung l 1. Grundelemente der Programmierung
Was bisher geschah. deklarative Programmierung. funktionale Programmierung (Haskell):
Was bisher geschah deklarative Programmierung funktional: Programm: Menge von Termgleichungen, Term Auswertung: Pattern matsching, Termumformungen logisch: Programm: Menge von Regeln (Horn-Formeln), Formel
Grundlagen der Programmierung 3 A
Grundlagen der Programmierung 3 A Typen, Typberechnung und Typcheck Prof. Dr. Manfred Schmidt-Schauß Sommersemester 2017 Haskell, Typen, und Typberechnung Ziele: Haskells Typisierung Typisierungs-Regeln
Einführung in Haskell
Einführung in Haskell Axel Stronzik 21. April 2008 1 / 43 Inhaltsverzeichnis 1 Allgemeines 2 / 43 Inhaltsverzeichnis 1 Allgemeines 2 Funktions- und Typdefinitionen 2 / 43 Inhaltsverzeichnis 1 Allgemeines
Hallo Haskell. Funktionale Programmierung. Prof. Dr. Oliver Braun Letzte Änderung: :06. Hallo Haskell 1/23
Hallo Haskell Funktionale Programmierung Prof. Dr. Oliver Braun Letzte Änderung: 15.10.2018 07:06 Hallo Haskell 1/23 Glasgow Haskell Compiler (GHC) der Haskell-Compiler ist der GHC Sie installieren ihn
Programmieren in Haskell Einführung
Programmieren in Haskell Einführung Peter Steffen Universität Bielefeld Technische Fakultät 16.10.2009 1 Programmieren in Haskell Veranstalter Dr. Peter Steffen Raum: M3-124 Tel.: 0521/106-2906 Email:
Funktionale Programmierung Einführung
Einführung Prof. Dr. Oliver Braun Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 13.09.2017 15:29 Inhaltsverzeichnis Was ist imperative Programmierung.......................
(Common Lisp) Ein Vortrag von Matthias Schütz und Andreas Klein. auf dem UUGRN FixMe Treffen ( )
(Common Lisp) Ein Vortrag von Matthias Schütz und Andreas Klein auf dem UUGRN FixMe Treffen (22.02.2008) Aufbau des Vortrags Kurze Einführung in die Sprache Listen Funktionen Macros Objektorientierung
Einführung in die funktionale Programmierung
Einführung in die funktionale Programmierung Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 26. Oktober 2006 Haskell - Einführung Syntax Typen Auswertung Programmierung
Gliederung. Funktionale Programmierung. Pattern matching in Haskell. Pattern matching in ERLANG. Materialien zur Vorlesung
Gliederung Funktionale Programmierung Materialien zur Vorlesung D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg 1 Sommer 2011, 7.
Die Definition eines Typen kann rekursiv sein, d.h. Typ-Konstruktoren dürfen Elemente des zu definierenden Typ erhalten.
4.5.5 Rekursive Typen Die Definition eines Typen kann rekursiv sein, d.h. Typ-Konstruktoren dürfen Elemente des zu definierenden Typ erhalten. datatype IntList = Nil Cons o f ( i n t IntList ) ; Damit
Programmierkurs II. Typsynonyme & algebraische Datentypen
Programmierkurs II Typsynonyme & algebraische Datentypen Um Dinge der realen Welt abzubilden, ist es nur in den seltensten Fällen komfortabel alles als Zahlen, Strings oder Listen zu kodieren. Wir benötigen
Haskell für Mathematiker
Haskell für Mathematiker Joachim Breitner AG Seminar Topology 12. Mai 2016, Karlsruhe LEHRSTUHL PROGRAMMIERPARADIGMEN 1 KIT 19.2.2016 University of the Joachim State ofbreitner Baden-Wuerttemberg - Haskell
Programmieren in Haskell
Programmieren in Haskell Wir steigen ein... Programmieren in Haskell 1 Was wir heute machen Umfrage: Wer hat den Hugs ausprobiert? Ausdrücke und Werte Datentypen Funktionen Aufgabe für s Wochenende Programmieren
Basiskonstrukte von Haskell
Basiskonstrukte von Haskell PD Dr. David Sabel Goethe-Universität Frankfurt am Main 29. September 2015 Basistypen und Operationen Ganzzahlen: Int = Ganzzahlen beschränkter Länge Integer = Ganzzahlen beliebiger
Einführung in die funktionale Programmierung
Einführung in die funktionale Programmierung Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 17. Oktober 2006 Einführung in Haskell: Syntax, Reduktionen, Kernsprachen Haskell,
Prof. Dr. Ulrich Hoffmann, Prof. Dr. Uwe Schmidt
Informatik Seminar WS 2009/2010 Prof. Dr. Ulrich Hoffmann, Prof. Dr. Uwe Schmidt Lisp in der JVM Michael Krüger (inf6065) 1 Übersicht 1. Hintergrund 2. Designziele 3. Spracheigenschaften 4. Klassenanalyse
Programmieren in Haskell Einführung
Programmieren in Haskell Einführung Peter Steffen Universität Bielefeld Technische Fakultät 17.10.2008 1 Programmieren in Haskell Veranstalter Dr. Peter Steffen Raum: M3-124 Tel.: 0521/106-2906 Email:
Entwicklung korrekter Programme in Coq. Thomas Strathmann
Entwicklung korrekter Programme in Coq Thomas Strathmann Überblick Teil 1 Was ist Coq? Theoretische Grundlagen Programmierung, Spezifikation, Beweise in
Funktionale Programmierung
Funktionale Programmierung Jörg Kreiker Uni Kassel und SMA Solar Technology AG Wintersemester 2011/2012 2 Teil II Typen mit Werten und Ausdruck, sogar listenweise 3 Haskell Programme Programm Module ein
Funktionale Programmiersprachen
Funktionale Programmiersprachen An den Beispielen Haskell und Erlang Übersicht Programmiersprachen λ-kalkül Syntax, Definitionen Besonderheiten von funktionalen Programmiersprache, bzw. Haskell Objektorientierte
Programmieren in Haskell Einstieg in Haskell
Programmieren in Haskell Einstieg in Haskell Peter Steffen Universität Bielefeld Technische Fakultät 24.10.2008 1 Programmieren in Haskell Was wir heute machen Umfrage: Wer hat den Hugs ausprobiert? Ausdrücke
Allgemeine Hinweise: TECHNISCHE UNIVERSITÄT MÜNCHEN. Name Vorname Studiengang Matrikelnummer. Hörsaal Reihe Sitzplatz Unterschrift
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen WS 2008/09 Einführung in die Informatik 2 Klausur Prof. Dr. Helmut Seidl, T. M. Gawlitza, S. Pott,
Programmieren in Haskell
Programmieren in Haskell Syntax und Semantik von Haskell Programmieren in Haskell 1 Was wir heute (und nächstes mal) machen Datentypdefinitionen Wertdefinitionen, Variablenbindungen Musterbindungen Funktionsbindungen
Funktionale Programmierung mit Haskell
Funktionale Programmierung mit Haskell Dr. Michael Savorić Hohenstaufen-Gymnasium (HSG) Kaiserslautern Version 20120622 Überblick Wichtige Eigenschaften Einführungsbeispiele Listenerzeugung und Beispiel
Programmieren in Haskell
Programmieren in Haskell Wir steigen ein... Programmieren in Haskell 1 Was wir heute machen Umfrage: Wer hat den Hugs ausprobiert? Ausdrücke und Werte Datentypen Funktionen Aufgabe für diese Woche Programmieren
Introduction to Python. Introduction. First Steps in Python. pseudo random numbers. May 2016
to to May 2016 to What is Programming? All computers are stupid. All computers are deterministic. You have to tell the computer what to do. You can tell the computer in any (programming) language) you
WS 2011/2012. Georg Sauthoff 1. October 18, 2011
in in WS 2011/2012 Georg 1 AG Praktische Informatik October 18, 2011 1 [email protected] Neue Übungsgruppen in neue Übungsgruppen neue Tutoren Sprechstunden in GZI-Arbeitsraum (V2-240)
Multiparadigmen- Programmiersprachen
Multiparadigmen- Programmiersprachen Martin Grabmüller [email protected] Fachgebiet Übersetzerbau und Programmiersprachen Fakultät IV Elektrotechnik und Informatik Technische Universität Berlin Multiparadigmen-Programmiersprachen
Programmierkurs II. Einführung in die deklarative Programmiersprache HASKELL
Programmierkurs II Einführung in die deklarative Programmiersprache HASKELL Name: Dr. Johannes Fuchs Tel.: 07531/88-2879 Office: D 214 E-mail: [email protected] Name: Leonard Wörteler Tel.:
Was bisher geschah Funktionale Programmierung in Haskell: Algebraische Datentypen Pattern Matching Polymorphie Typklassen Rekursive Datentypen:
Was bisher geschah Funktionale Programmierung in Haskell: Algebraische Datentypen Pattern Matching Polymorphie Typklassen Rekursive Datentypen: Peano-Zahlen, Listen, Bäume Rekursive Funktionen strukturelle
Einführung in die Programmierung
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Vorlesung 5: Invarianten und Logik Erinnerung: Verträge In Verbindung mit einem Feature: Vorbedingungen Nachbedingungen
Funktionales Programmieren in Python
Wintersemester 2008/2009 1 Funktionen sind Objekte 2 lambda Funktionen 3 apply 4 map 5 zip 6 filter 7 reduce 8 List Comprehension Funktionales Programmieren Wer nicht funktional programmiert, programmiert
Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8
Java 8 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Oktober 2014 JAV8 5 Java 8 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen
Funktionale Programmierung mit Haskell. Jan Hermanns
Funktionale Programmierung mit Haskell Jan Hermanns 1 Programmiersprachen imperativ deklarativ konventionell OO logisch funktional Fortran Smalltalk Prolog Lisp C Eiffel ML Pascal Java Haskell 2 von Neumann
2.5 Listen. Kurzschreibweise: [42; 0; 16] Listen werden mithilfe von [] und :: konstruiert.
2.5 Listen Listen werden mithilfe von [] und :: konstruiert. Kurzschreibweise: [42; 0; 16] # let mt = [];; val mt : a list = [] # let l1 = 1::mt;; val l1 : int list = [1] # let l = [1;2;3];; val l : int
Grundlagen der Programmierung 2. Operationale Semantik
Grundlagen der Programmierung 2 Operationale Semantik Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 29. April 2009 Semantik von Programmiersprachen Semantik = Bedeutung
Unendliche Listen und Bäume
Funktionale Programmierung Unendliche Listen und Bäume Helga Karafiat, Steffen Rüther Übersicht Grundlage: Lazy Evaluation Konstruktion von unendlichen Strukturen Verwendung von unendlichen Listen Unendliche
Ich liebe Java && Ich liebe C# Rolf Borst
Ich liebe Java && Ich liebe C# Rolf Borst Java oder C#? Einführung public class Einfuehrung { private int gesamtzahl = 0; /* Ermittelt die Anzahl der geraden und durch drei teilbaren Zahlen */ public String
Ströme als unendliche Listen in Haskell
Ströme als unendliche Listen in Haskell Strom := Folge oder Liste von Daten, unbegrenzt viele Daten-Elemente. Ströme sind in Haskell als als (potentiell) unendliche Listen darstellbar und programmierbar
Listen und Listenfunktionen. Grundlagen der Programmierung 2 A (Listen) Listen und Listenfunktionen. Listen? Haskell: Listen
Listen und Listenfunktionen Grundlagen der Programmierung 2 A (Listen) Haskell: Listen Prof. Dr. Manfred Schmidt-Schauß Listen modellieren Folgen von gleichartigen, gleichgetypten Objekten. Ausdruck im
Verarbeitung unendlicher Datenstrukturen Jetzt können wir z.b. die unendliche Liste aller geraden Zahlen oder aller Quadratzahlen berechnen:
Verarbeitung unendlicher Datenstrukturen Jetzt können wir z.b. die unendliche Liste aller geraden Zahlen oder aller Quadratzahlen berechnen: take 1 0 ( f i l t e r ( fn x => x mod 2=0) nat ) ; val it =
Mathematik für Informatiker I Mitschrift zur Vorlesung vom 14.12.2004
Mathematik für Informatiker I Mitschrift zur Vorlesung vom 14.12.2004 In der letzten Vorlesung haben wir gesehen, wie man die einzelnen Zahlenbereiche aufbaut. Uns fehlen nur noch die reellen Zahlen (siehe
ALP I Einführung in Haskell
ALP I Einführung in Haskell WS 2012/2013 Was ist Haskell? Haskell ist eine rein Funktionale Programmiersprache mit einer nach Bedarf Auswertung-Strategie oder "Lazy Evaluation". Was bedeutet rein funktional?
Funktionale Programmierung mit C++
Funktionale Programmierung mit C++ Rainer Grimm Softwarearchitekt Partner: Überblick Programmierung in funktionaler Art Warum funktionale Programmierung? Was ist funktionale Programmierung? Charakteristiken
Methoden und Funktionen in Scala
Methoden und Funktionen in Scala Kapitel 11 und 12 des Buches 1 Jede Methode hat einen Typ Für die folgende Methode def square(v: Int) = v*v erhalten wir von der Scala-Shell die Rückmeldung square: (Int)Int
Grundprinzipien der funktionalen Programmierung
Grundprinzipien der funktionalen Programmierung Funktionen haben keine Seiteneffekte Eine Funktion berechnet einen Ausgabewert der nur von den Eingabewerten abhängt: 12 inputs + output 46 34 2 Nicht nur
Bru ckenkurs Programmieren
Bru ckenkurs Programmieren Tag 1: Variablen und Verzweigungen Jakob Czekansky Technische Hochschule Mittelhessen 26. September 2016 Inhalt Organisatorisches Einleitung: Was ist Programmieren? Hello World
Einführung IMP-Syntax Reduktionssemantik Maschinen-Semantik. Teil IV. Semantik imperativer Sprachen
Teil IV Semantik imperativer Sprachen 201 1. Einführung Alternativen zur Beschreibung der Semantik: natürliche Sprache (bisher, unpräzise) operational Reduktionssemantik (vgl. Haskell-Semantik in Kap.
Einführung in die Informatik 2
Technische Universität München Fakultät für Informatik Prof. Tobias Nipkow, Ph.D. Lars Noschinski, Dr. Jasmin Blanchette, Dmitriy Traytel Wintersemester 2012/13 Lösungsblatt Endklausur 9. Februar 2013
Inferenzmethoden. Einheit 18. Logik höherer Stufe
Inferenzmethoden Einheit 18 Logik höherer Stufe 1. Syntax und Semantik 2. Simulation mathematischer Konstrukte 3. Beweisführung in Logik höherer Stufe Logik höherer Stufe Logik erster Stufe hat nur einfache
Prüfung Funktionale Programmierung
Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IF, IB, IC Sommersemester 2015 Prüfung Funktionale Programmierung Datum : 23.07.2015, 10:30 Uhr Bearbeitungszeit
Praktische Informatik 3: Funktionale Programmierung Vorlesung 2 vom : Funktionen und Datentypen
Rev. 1843 1 [35] Praktische Informatik 3: Funktionale Programmierung Vorlesung 2 vom 23.10.2012: Funktionen und Datentypen Christoph Lüth Universität Bremen Wintersemester 2012/13 2 [35] Fahrplan Teil
FachPraktikum 1590 Erweiterbare Datenbanksysteme. Aufgaben Phase 1
FachPraktikum 1590 Erweiterbare Datenbanksysteme Aufgaben Phase 1 Wintersemester 2004/2005 Ralf Hartmut Güting, Dirk Ansorge, Thomas Behr, Markus Spiekermann Praktische Informatik IV, Fernuniversität Hagen
Prolog Tutorial Norbert E. Fuchs Institut für Informatik Universität Zürich
Prolog Tutorial Norbert E. Fuchs Institut für Informatik Universität Zürich Inhalt Vom deklarativen Wissen zum prozeduralen Programm Vom Programm zur Berechnung Elemente eines Prolog-Programms Zugverbindungen
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 12/13. Kapitel 3. Grunddatentypen, Ausdrücke und Variable
1 Kapitel 3 Grunddatentypen, Ausdrücke und Variable 2 Eine Datenstruktur besteht aus Grunddatentypen in Java einer Menge von Daten (Werten) charakteristischen Operationen Datenstrukturen werden mit einem
Deklarative Programmierung
Deklarative Programmierung Prof. Dr. Sibylle Schwarz Westsächsische Hochschule Zwickau Dr. Friedrichs-Ring 2a, RII 263 http://www.fh-zwickau.de/~sibsc/ [email protected] WS 2012/2013 1 Motivation...
Einführung in die funktionale Programmierung
Einführung in die funktionale Programmierung Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 28. Oktober 2008 Einführung in Haskell: Syntax, Reduktionen, Kernsprachen Haskell,
