Benutzer:Turelion/Ocaml Tutorial/Ideen
OCaml Tutorial
Vorwort
Bearbeitenallgemeine Konzepte
BearbeitenKommentare
BearbeitenDie Erzeugung von Kommentaren orientiert sich an C/C++.
(* Einzeiliger Kommentar *) (* Mehrzeiliger Kommentar *)
Erzeugung ausführbarer OCaml-Dateien
BearbeitenAnweisungen
BearbeitenVariablen
BearbeitenDeklaration
BearbeitenOCaml unterscheidet zwischen Ganzzahlen und Fließkommazahlen, außerdem stehen Zeichenketten zur Verfügung. Dadurch entstehen einige Schwierigkeiten, und man wird zu sauberer Programmierung gezwungen. Der Typ der Variablen wird durch die Wertzuweisung festgelegt.
Weitere Datentypen: bool (* Wahrheitswert. Kann mit true oder false belegt werden *) char (* Einzelzeichen *) unit (* Geschrieben: () *)
Wertzuweisung
Bearbeitenlet ausdruck = ausdruck let a = 1 (* Ganzzahl *) let b = 1.0 (* Fließkommazahl!! Man beachte, daß im englischen Sprachraum der Punkt die Funktion unseres Kommas übernimmt *) let c = "Hallo Wikibookleser!!" (* Zeichenkette *)
Typumwandlungen
BearbeitenOCaml stellt eine Reihe von Typumwandlungsfunktionen zur Verfügung, die normal wie andere Funktionen aufgerufen werden.
float_of_int (* Wandelt eine Ganzzahl in eine Fließkommazahl um *) int_of_float (* Der umgekehrte Fall *) char_of_int (* Wandelt eine Ganzzahl in ein Einzelzeichen um *) int_of_char (* und umgekehrt *) string_of_int (* Ganzzahl => Zeichenkette *) ...
Für float_of_int hat sich eine Kurzschreibweise durchgesetzt
float (* Wandelt eine Ganzzahl in eine Fließkommazahl um *)
Feldvariablen
BearbeitenVerbundvariablen
BearbeitenOperatoren
BearbeitenWie schon erwähnt, unterscheidet OCaml zwischen Ganzzahlen und Fließkommazahlen. Daraus folgt, daß man mit '/' lediglich Ganzzahlen dividieren kann. Für Fließkommazahlen kommt der Operator '/.' zum Einsatz. Gleiches gilt für die anderen Grundrechenarten.
Fallunterscheidungen
BearbeitenOCaml verfügt über eine Fallunterscheidung mit 'If'. Diese wird aber selten genutzt. Stattdessen kommt hier eines der Kernkonzepte von OCaml zum Einsatz.
Ein Suchbegriff wird als Funktionsname verwendet, der mit einem Anweisungssatz zu einer Funktion ausgestattet wird. Die Funktion wird ausgelöst, wenn der entsprechende Suchbegriff im Datenstrom auftaucht.
Schleifen
BearbeitenUnterfunktionen
BearbeitenDeklaration
Bearbeitenlet funktionsname parameter1 parameter2 ... = kommando1 kommando2 kommando3 ...;;
Beispiel:
let durchschnitt a b = (a +. b) /. 2.0;;
Funtionen, die recursiv (selbstaufrufend) gebraucht werden sollen, benötigen das Schüsselwort 'rec'.
let rec funktionsname parameter1 parameter2 ... = ...
Aufruf
BearbeitenDer Funktionsname und die Parameterliste werden ausschließlich durch Leerzeichen getrennt.
funktionsname parameter1 parameter2 ...
Besteht ein Parameter selber aus einem Funktionsaufruf, wird der gesamte Parameterausdruck eingeklammert
funktionsname1 (funktionsname2 unterparameter1 unterparameter2 ...) parameter2 ...