Benutzer:Turelion/Ocaml Tutorial/Ideen
OCaml Tutorial
Vorwort Bearbeiten
allgemeine Konzepte Bearbeiten
Kommentare Bearbeiten
Die Erzeugung von Kommentaren orientiert sich an C/C++.
(* Einzeiliger Kommentar *) (* Mehrzeiliger Kommentar *)
Erzeugung ausführbarer OCaml-Dateien Bearbeiten
Anweisungen Bearbeiten
Variablen Bearbeiten
Deklaration Bearbeiten
OCaml 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 Bearbeiten
let 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 Bearbeiten
OCaml 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 Bearbeiten
Verbundvariablen Bearbeiten
Operatoren Bearbeiten
Wie 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 Bearbeiten
OCaml 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 Bearbeiten
Unterfunktionen Bearbeiten
Deklaration Bearbeiten
let 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 Bearbeiten
Der 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 ...